如何在C#中从数组获取不同的值?

17

7
Distinct() 是一个 LINQ 查询方法,用于从集合中筛选出不同的元素。 - Ivan Crojach Karačić
3
int[] MyArray = { 0, 0, 1, 2, 3, 3, 4}; int[] MyDistinctArray = MyArray.Distinct().ToArray();这将会给你MyDistinctArray = { 0, 1, 2, 3, 4} - DbxD
4个回答

33

你可以使用.Distinct()扩展方法。

var collectionWithDistinctElements = oldArray.Distinct().ToArray();

9

使用 Distinct() 函数:

var distinctArray = myArray.Distinct().ToArray();

1
你的直觉是正确的 :) - dlchambers

6
使用LINQ中的Distinct方法。
请参阅http://msdn.microsoft.com/en-us/library/bb348436.aspx
            List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };

            IEnumerable<int> distinctAges = ages.Distinct();

            Console.WriteLine("Distinct ages:");

            foreach (int age in distinctAges)
            {
                Console.WriteLine(age);
            }

            /*
             This code produces the following output:

             Distinct ages:
             21
             46
             55
             17
            */

2

Distinct足以解决您的问题,但如果您在自定义对象上执行此操作,则需要实现IEquatable<T>并需要重写GetHashCode()方法才能使其正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接