C# - 리스트 중복 요소 제거

리스트의 중복 요소들을 제거하는 방법을 소개합니다.

1. Distinct()를 이용한 방법

list.Distinct()는 리스트에서 중복 요소들을 제거하고, 그 외의 요소들을 Enumerable로 리턴합니다. ToList()로 Enumerable를 List로 변환할 수 있습니다.

아래 코드는 리스트에서 중복 요소들을 모두 제거하는 예제입니다.

using System;

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            List<int> list = new List<int>() {1, 2, 3, 1, 2, 5, 5, 6};

            List<int> result = list.Distinct().ToList();
            Console.WriteLine(string.Join(", ", result));
        }
    }
}

Output:

1, 2, 3, 5, 6

2. Set을 이용한 방법

Set은 중복을 허용하지 않는 자료구조입니다. 만약 동일한 요소를 Set에 추가하면, 하나의 요소만 추가되고 동일한 요소가 추가되지 않습니다.

Set의 특성을 이용하여 중복 요소들을 제거할 수 있습니다. 리스트의 모든 요소들을 Set에 추가하면 중복 요소들이 저절로 제거됩니다.

아래와 같이 리스트의 모든 요소를 Set에 추가하여 중복을 제거하고, 다시 List로 변환할 수 있습니다.

using System;

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            List<int> list = new List<int>() {1, 2, 3, 1, 2, 5, 5, 6};

            HashSet<int> set = new HashSet<int>(list);
            List<int> result = set.ToList();
            Console.WriteLine(string.Join(", ", result));
        }
    }
}

Output:

1, 2, 3, 5, 6
Loading script...
codechachaCopyright ©2019 codechacha