C#에서 둘 이상의 리스트 연결하기
C#에서 여러 개의 리스트(List)를 하나로 합치려면 Concat() 메서드를 사용하면 됩니다. Concat 메서드는 System.Linq 네임스페이스에 포함되어 있으며, 두 시퀀스를 순서대로 이어 붙인 새로운 시퀀스를 반환합니다.
세 개의 리스트 선언
먼저 연결할 세 개의 리스트를 준비합니다.
// 세 개의 리스트
var list1 = new List<int>{3, 4};
var list2 = new List<int>{1, 2, 3};
var list3 = new List<int>{2, 5, 6};Concat 메서드로 리스트 연결
이제 Concat 메서드를 사용하여 위의 세 개 리스트를 차례대로 연결합니다.
var res1 = list1.Concat(list2); var res2 = res1.Concat(list3);
위 코드에서는 먼저 list1과 list2를 연결해 res1을 만들고, 다시 res1에 list3를 연결하여 최종 결과 res2를 얻습니다.
예제 전체 코드
완성된 전체 코드는 다음과 같습니다.
using System.Collections.Generic;
using System.Linq;
using System;
public class Demo {
public static void Main() {
// 세 개의 리스트
var list1 = new List<int>{3, 4};
var list2 = new List<int>{1, 2, 3};
var list3 = new List<int>{2, 5, 6};
// 리스트 연결
var res1 = list1.Concat(list2);
var res2 = res1.Concat(list3);
foreach(int i in res2) {
Console.WriteLine(i);
}
}
}실행 결과
3 4 1 2 3 2 5 6
출력 결과를 보면 첫 번째 리스트의 요소(3, 4)가 먼저 나오고, 그다음 두 번째 리스트의 요소(1, 2, 3), 마지막으로 세 번째 리스트의 요소(2, 5, 6)가 순서대로 출력되는 것을 확인할 수 있습니다.
참고 사항
- Concat 메서드는 원본 리스트를 변경하지 않고 연결된 새로운 시퀀스를 반환합니다.
- 중복된 값은 자동으로 제거되지 않습니다. 중복 제거가 필요하다면
Distinct()메서드를 추가로 사용할 수 있습니다. - 세 개 이상의 리스트를 한 번에 연결하려면
list1.Concat(list2).Concat(list3)처럼 메서드를 체이닝하는 방식도 가능합니다.