C#에서 리스트(List)에 중복된 값이 여러 개 포함되어 있을 때, 고유한(unique) 값만 추출하여 출력해야 하는 경우가 자주 발생합니다. 이럴 때 LINQ에서 제공하는 Distinct() 메서드를 사용하면 아주 간단하게 해결할 수 있습니다. 이 글에서는 리스트를 생성하고, Distinct() 메서드로 중복을 제거한 뒤 고유한 값만 출력하는 전체 과정을 예제와 함께 살펴보겠습니다.
1. 리스트 생성하기
먼저 정수형 리스트를 선언하고 Add() 메서드로 요소들을 추가합니다.
List<int> list = new List<int>(); list.Add(99); list.Add(49); list.Add(32);
2. Distinct()로 고유한 요소 가져오기
Distinct() 메서드는 시퀀스에서 중복된 요소를 제거하고 고유한 요소만 반환합니다. 여기에 ToList()를 함께 사용하면 그 결과를 다시 리스트 형태로 변환할 수 있습니다.
List<int> myList = list.Distinct().ToList();
이제 전체 예제를 통해 리스트에서 고유한 값을 출력하는 방법을 확인해 보겠습니다.
예제
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo {
public static void Main() {
List<int> list = new List<int>();
list.Add(55);
list.Add(45);
list.Add(55);
list.Add(65);
list.Add(73);
list.Add(24);
list.Add(65);
Console.WriteLine("초기 리스트...");
foreach(int a in list) {
Console.WriteLine("{0}", a);
}
List<int> myList = list.Distinct().ToList();
Console.WriteLine("고유한 요소들...");
foreach(int a in myList) {
Console.WriteLine("{0}", a);
}
}
}실행 결과
초기 리스트... 55 45 55 65 73 24 65 고유한 요소들... 55 45 65 73 24
실행 결과를 보면 초기 리스트에는 55와 65가 각각 두 번씩 포함되어 있었지만, Distinct() 메서드를 적용한 후에는 중복이 제거되어 5개의 고유한 값만 출력된 것을 확인할 수 있습니다. 참고로 Distinct()는 요소가 처음 등장한 순서를 유지하므로, 원본 리스트의 순서가 그대로 보존됩니다.