Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 두 개의 리스트를 결합하는 방법 – AddRange() 메서드 활용

C#에서 두 개의 리스트(List)를 하나로 합치려면 AddRange() 메서드를 사용하면 됩니다. AddRange()는 인자로 전달된 컬렉션의 모든 요소를 호출한 리스트의 끝에 그대로 추가해 주는 메서드입니다.

1. 첫 번째 리스트 만들기

먼저 문자열 타입의 첫 번째 리스트를 생성하고 요소를 추가합니다.

var list1 = new List<string>();
list1.Add("Keyboard");
list1.Add("Mouse");

2. 두 번째 리스트 만들기

같은 방식으로 두 번째 리스트를 생성합니다.

var list2 = new List<string>();
list2.Add("Hard Disk");
list2.Add("Pen Drive");

3. AddRange()로 두 리스트 결합하기

list1에 list2의 모든 요소를 추가하려면 다음 한 줄이면 충분합니다.

list1.AddRange(list2);

이 코드가 실행되면 list2의 요소들이 list1 뒤에 순서대로 붙어 하나의 리스트가 완성됩니다.

전체 예제 코드

using System.Collections.Generic;
using System;

namespace Demo {
    public static class Program {
        public static void Main() {
            var list1 = new List<string>();
            list1.Add("Keyboard");
            list1.Add("Mouse");

            Console.WriteLine("Our list1....");
            foreach(var p in list1) {
                Console.WriteLine(p);
            }

            var list2 = new List<string>();
            list2.Add("Hard Disk");
            list2.Add("Pen Drive");

            Console.WriteLine("Our list2....");
            foreach(var p in list2) {
                Console.WriteLine(p);
            }

            list1.AddRange(list2);

            Console.WriteLine("Concatenated list....");
            foreach(var p in list1) {
                Console.WriteLine(p);
            }
        }
    }
}

실행 결과

Our list1....
Keyboard
Mouse
Our list2....
Hard Disk
Pen Drive
Concatenated list....
Keyboard
Mouse
Hard Disk
Pen Drive

참고: LINQ의 Concat() 메서드

원본 리스트를 수정하지 않고 두 리스트를 이어붙인 새로운 리스트를 만들고 싶다면 LINQ의 Concat() 메서드를 사용할 수도 있습니다.

var combined = list1.Concat(list2).ToList();

Concat()은 두 시퀀스를 연결한 새로운 열거형(IEnumerable)을 반환하므로, 기존 데이터를 그대로 유지해야 하는 상황에서 유용하게 활용할 수 있습니다. 반면 AddRange()는 원본 리스트 자체를 변경한다는 점을 기억해 두세요.