Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 컬렉션 초기화: 컬렉션 이니셜라이저 구문 완벽 정리

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 등 다양한 컬렉션 타입에서 이 문법을 적극 활용하면 유지보수성 높은 코드를 작성할 수 있습니다.