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

C# 리스트에서 고유한 값 출력하기 – Distinct() 메서드 활용 방법

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()는 요소가 처음 등장한 순서를 유지하므로, 원본 리스트의 순서가 그대로 보존됩니다.