Hiển thị các bài đăng có nhãn HashSet. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn HashSet. Hiển thị tất cả bài đăng

Thứ Tư, 11 tháng 2, 2015

Xóa bỏ phần tử trùng trong mảng c#

Một số cách nhanh để xóa bỏ phần tử trùng trong mảng:
- Sử dụng .Distinct()
- Lợi dụng nguyên tắc các Key của Dictionary không được trùng mình sẽ gán các phần tử vào tập Key này.
- Sử dụng HashSet.

Demo mảng số nguyên.

        static void Main(string[] args)
        {
            int[] arr = new int[1000];
            for (int i = 0; i < 998; i += 2)
            {
                arr[i] = i;
                arr[i + 1] = 1000 - i;
            }

            int[] result1 = arr.Distinct().ToArray();

            Dictionary<int, int> dic = new Dictionary<int, int>();
            HashSet<int> hash = new HashSet<int>();
            foreach (int i in arr)
            {
                dic[i] = 0;
                hash.Add(i);
            }

            int[] result2 = dic.Keys.ToArray();
            int[] result3 = hash.ToArray();


            Console.ReadLine();
        }