C# 컬렉션 이니셜라이저란?
C#에서는 컬렉션 이니셜라이저(Collection Initializer) 구문을 사용하면 클래스 객체로 이루어진 컬렉션을 한 줄의 코드로 간결하게 생성하고 초기화할 수 있습니다. 이 문법은 내부적으로 컬렉션의 Add() 메서드를 자동으로 호출하기 때문에, 반복적인 Add 호출 코드를 작성할 필요가 없어 가독성과 생산성이 크게 향상됩니다.
지금부터 Employee 객체를 예시로 컬렉션 초기화 과정을 단계별로 살펴보겠습니다.
1단계: Employee 객체에 값 설정하기
먼저 객체 초기자(Object Initializer) 구문을 활용해 Employee 객체 두 개를 생성하고 속성 값을 설정합니다.
var emp1 = new Employee() { EID = 001, EmpName = "Tim", EmpDept = "Finance"};
var emp2 = new Employee() { EID = 002, EmpName = "Tom", EmpDept = "HR"};2단계: 생성한 객체를 컬렉션에 담기
이렇게 만든 객체들을 중괄호({ }) 안에 나열하여 List 컬렉션에 바로 초기화할 수 있습니다.
IList<Employee> empDetails = new List<Employee> {emp1, emp2 };전체 예제 코드
위 과정을 하나로 합친 전체 코드는 다음과 같습니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
var emp1 = new Employee() { EID = 001, EmpName = "Tim", EmpDept = "Finance"};
var emp2 = new Employee() { EID = 002, EmpName = "Tom", EmpDept = "HR"};
IList<Employee> empDetails = new List<Employee> {emp1, emp2 };
// 직원 1 정보 출력
Console.WriteLine("Employee One...");
Console.WriteLine(emp1.EID);
Console.WriteLine(emp1.EmpName);
Console.WriteLine(emp1.EmpDept);
// 직원 2 정보 출력
Console.WriteLine("Employee Two...");
Console.WriteLine(emp2.EID);
Console.WriteLine(emp2.EmpName);
Console.WriteLine(emp2.EmpDept);
}
}
public class Employee {
public int EID { get; set; }
public string EmpName { get; set; }
public string EmpDept { get; set; }
}
실행 결과
프로그램을 실행하면 아래와 같이 각 Employee 객체의 속성 값이 순서대로 출력됩니다.
Employee One...
1
Tim
Finance
Employee Two...
2
Tom
HR
정리
C#의 컬렉션 이니셜라이저는 다음과 같은 장점을 제공합니다.
- 코드 간결화: 여러 줄의 Add 호출 없이 단일 문장으로 컬렉션을 생성·초기화할 수 있습니다.
- 가독성 향상: 어떤 데이터가 컬렉션에 들어가는지 한눈에 파악할 수 있습니다.
- 객체 초기자와의 결합: 객체 생성 시점에 속성 값을 함께 지정할 수 있어 초기화 로직이 더욱 깔끔해집니다.
실무에서도 List, Dictionary 등 다양한 컬렉션 타입에서 이 문법을 적극 활용하면 유지보수성 높은 코드를 작성할 수 있습니다.