더북(TheBook)

Note ≡ 컬렉션 합치기 연습

컬렉션 2개를 하나로 합치는 기능을 만들어 보겠습니다. 다음과 같이 FirstSecond 컬렉션을 합쳐 Merge 컬렉션에 포함하는 기능을 만드는 방법은 많이 있겠지만, List<T> 제네릭 클래스의 Add() 메서드를 사용하면 쉽게 구현할 수 있습니다.

▲ 그림 48-1 컬렉션 합치기

앞 그림과 같은 컬렉션 합치기 예제를 만들어 보겠습니다. FirstSecond 컬렉션을 Merge 컬렉션에 포함합시다.

 

> class First
. {
.     public string A { get; set; }
.     public string B { get; set; }
. }
>
> class Second
. {
.     public string B { get; set; }
.     public string C { get; set; }
. }
>
> class Merge
. {
.     public string A { get; set; }
.     public string B { get; set; }
.     public string C { get; set; }
. }
>
> var first = new List<First>()
. {
.     new First() { A = "F1A", B = "F1B" },
.     new First() { A = "F2A", B = "F2B" }
. };
> var second = new List<Second>()
. {
.     new Second() { B = "S1B", C = "S1C" },
.     new Second() { B = "S2B", C = "S2C" }
. };
>
> var merge = new List<Merge>();          //Merge 컬렉션 생성
>
> for (int i = 0; i < first.Count; i++)   //first 컬렉션 추가: for 문 사용
. {
.     merge.Add(new Merge() { A = first[i].A, B = first[i].B });
. }
>
> foreach (var s in second)               //second 컬렉션 추가: foreach 문 사용
. {
.     merge.Add(new Merge() { B = s.B, C = s.C });
. }
>
> Console.WriteLine($"{"A ",5} {"B ",5} {"C ",5}"); //합친 컬렉션 출력
  A      B     C
> foreach (var m in merge)
. {
.     Console.WriteLine($"{m.A,5} {m.B,5} {m.C,5}");
. }
F1A   F1B
F2A   F2B
      S1B   S1C
      S2B   S2C

 

실행 결과 컬렉션 2개를 제네릭 컬렉션 하나에 포함해서 출력함을 알 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.