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개를 제네릭 컬렉션 하나에 포함해서 출력함을 알 수 있습니다.

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