C#에서 두 개 이상의 리스트를 하나로 합치려면 Concat 메서드를 사용하면 됩니다. Concat은 LINQ에서 제공하는 확장 메서드로, 두 시퀀스를 순서대로 이어붙인 새로운 시퀀스를 반환합니다.
리스트 준비하기
먼저 연결할 두 개의 리스트를 생성합니다.
var list1 = new List<int>{12, 40};
var list2 = new List<int>{98, 122, 199, 230};Concat 메서드 사용법
Concat 메서드는 다음과 같이 간단하게 사용할 수 있습니다.
var res = list1.Concat(list2);
이때 결과 변수 res는 IEnumerable<int> 타입으로 반환되며, 실제 열거가 수행될 때까지 실행이 지연됩니다(lazy evaluation). 즉시 리스트 형태로 변환하고 싶다면 .ToList()를 호출하면 됩니다.
전체 예제 코드
아래는 Concat 메서드를 활용한 완전한 예제입니다. System.Linq 네임스페이스를 반드시 포함해야 한다는 점에 유의하세요.
using System.Collections.Generic;
using System.Linq;
using System;
public class Demo {
public static void Main() {
// 두 개의 리스트 선언
var list1 = new List<int>{12, 40};
var list2 = new List<int>{98, 122, 199, 230};
// 리스트 연결
var res = list1.Concat(list2);
foreach(int i in res) {
Console.WriteLine(i);
}
}
}실행 결과
위 코드를 실행하면 첫 번째 리스트와 두 번째 리스트의 요소가 순서대로 출력됩니다.
12 40 98 122 199 230
참고 사항
Concat 메서드는 원본 리스트를 변경하지 않고 새로운 시퀀스를 생성합니다. 세 개 이상의 리스트를 연결해야 하는 경우에도 list1.Concat(list2).Concat(list3)처럼 메서드를 연쇄적으로 호출하면 됩니다. 또한 Union과 달리 중복 요소를 제거하지 않으므로, 모든 요소를 그대로 유지하고 싶을 때 적합합니다.