제네릭 개체를 초기화하는 세 가지 방법 정리
단순한 int, string이 아닌 사용자 정의된 클래스를 List<T> 제네릭 리스트 클래스의 T에 전달하여 구조화해서 사용할 수 있습니다. 특정 클래스 형태의 리스트 클래스로 12개월 일사량을 출력하는 방법을 예제로 살펴보겠습니다.
> public class Insolation . { . public int Month { get; set; } //월 . public float Value { get; set; } //일사량 값 . } > > //① 개체 형식의 리스트 생성: 컬렉션 이니셜라이저로 값 초기화 > List<Insolation> insolations = new List<Insolation>() . { . new Insolation { Month = 1, Value = 0.3f }, . new Insolation { Month = 2, Value = 0.6f }, . new Insolation { Month = 3, Value = 0.9f }, . new Insolation { Month = 4, Value = 1.2f } . }; > > //② Add() 메서드로 리스트에 값 추가: 개체 이니셜라이저로 값 초기화 . insolations.Add(new Insolation() { Month = 5, Value = 1.5f }); . insolations.Add(new Insolation() { Month = 6, Value = 1.8f }); . insolations.Add(new Insolation() { Month = 7, Value = 1.6f }); . insolations.Add(new Insolation() { Month = 8, Value = 1.5f }); > > //③ AddRange() 메서드로 리스트에 값들 추가 > var tempInsolations = new List<Insolation>() . { . new Insolation { Month = 9, Value = 1.2f }, . new Insolation { Month = 10, Value = 0.9f }, . new Insolation { Month = 11, Value = 0.6f }, . new Insolation { Month = 12, Value = 0.1f } . }; . insolations.AddRange(tempInsolations); > > Console.WriteLine("연간 일사량"); //④ 리스트 출력 연간 일사량 > foreach (var insolation in insolations) . { . Console.WriteLine($"{insolation.Month:00} - {insolation.Value}"); . } 01 - 0.3 02 - 0.6 03 - 0.9 04 - 1.2 05 - 1.5 06 - 1.8 07 - 1.6 08 - 1.5 09 - 1.2 10 - 0.9 11 - 0.6 12 - 0.1
①처럼 List<T>에 List<Insolation> 형태로 사용자 정의 클래스를 넣고 개체를 생성할 수 있습니다. 리스트를 선언과 동시에 초기화할 때는 컬렉션 이니셜라이저를 사용하여 한 번에 데이터 여러 개를 줄 수 있습니다.
이미 기본값으로 초기화된 리스트에 추가로 데이터를 입력할 때는 ②처럼 Add() 메서드에 개체를 개체 이니셜라이저로 줄 수 있습니다. 또 ③처럼 AddRange() 메서드로 데이터 리스트 여러 개를 한꺼번에 줄 수도 있습니다.
리스트 값을 출력할 때는 foreach 문으로 반복해서 사용합니다.