如何删除数组中的重复值

本文关键字:数组 何删除 删除 | 更新日期: 2023-09-27 18:35:49

可能的重复项:
从阵列中删除重复项

我有一个 int 数组,其中包含定义数量的元素,都是正数。我想从这个数组中获取一个数组,其中所有元素只出现一次。例如,如果第一个数组是类似{2000,2011,2011,2012,2009,2009,2000},我想得到这个{2000,2011,2012,2009}。我该怎么做?我尝试了很多使用 for 循环的东西,但我无法做一些好事。

如何删除数组中的重复值

使用 LINQ 很容易:

var intArray = new[] { 2000, 2011, 2011, 2012, 2009, 2009, 2000 };
var uniqueArray = intArray.Distinct().ToArray();

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx

另一种方法是使用 Enumerable.GroupBy:

uniqueArray = intArray.GroupBy(i => i).Select(grp => grp.Key).ToArray();

你可以执行以下操作

var yourArray = yourArray.Distinct().ToArray();

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx

替代方法:

    int[] _array = new int[] {1, 2, 1,2}
    var myArray = new System.Collections.ArrayList();
    foreach(var item in _array){
        if (!myArray.Contains(item))
            myArray.Add(item);
    }

除了其他答案之外,您可能还想查看一个 HashSet ,特别是如果您提前知道您将有重复的值。