C# - 배열 중복 요소 제거

배열에서 중복 요소들을 제거하고, 유일한 값들만 남기는 방법을 소개합니다.

1. Distinct()를 이용한 방법

array.Distinct()는 배열에서 중복 요소들을 제거하고, 그 외의 요소들을 Enumerable로 리턴합니다. ToArray()로 Enumerable를 Array로 변환할 수 있습니다.

아래와 같이 배열의 중복 요소들을 모두 제거한 새로운 배열을 만들 수 있습니다.

using System;

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

            int[] arr = {1, 2, 3, 1, 2, 5, 5, 6};

            int[] result = arr.Distinct().ToArray();
            Console.WriteLine(string.Join(", ", result));
        }
    }
}

Output:

1, 2, 3, 5, 6

2. Set을 이용한 방법

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

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

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

using System;

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

            int[] arr = {1, 2, 3, 1, 2, 5, 5, 6};

            HashSet<int> set = new HashSet<int>(arr);
            int[] result = set.ToArray();
            Console.WriteLine(string.Join(", ", result));
        }
    }
}

Output:

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