检查数组中至少有两个元素是否相等

时间:2015-10-05 03:17:17

标签: c# arrays compare

有没有办法检查数组中至少有一个元素出现多次相等而不按顺序比较每个元素。

示例:在int [] array1 = {1,3,4,2,4}中;元素4出现两次。

4 个答案:

答案 0 :(得分:1)

您只需要检查原始数组与其Distinct()版本之间是否存在任何差异。

  var result = (array1.Count()-array1.Distinct().Count())>0;

答案 1 :(得分:1)

这可能会为你做到这一点

var duplicates = array1.GroupBy(p => p).Where(g => g.Count() > 1).Select(g => g.Key);

变量duplicates包含重复项目列表

修改

如果希望返回值为布尔值而不是

var duplicates = array1.GroupBy(p => p).Where(g => g.Count() > 1).Select(g => g.Key).Count() > 0;

您也可以这样做

if(array1.Distinct().Count() != array1.Count())
    return true; /// You have duplicates in the array 
else
    return false; /// All the elements in the array are different 

答案 2 :(得分:1)

您可以使用Distinct()方法获取数组的唯一值,并将长度与原始数组进行比较

int[] arrayDistinctElements = array1.Distinct().ToArray();

if(arrayDistinctElements.length == array1.length)
{
//All unique elements
}
else
{
//Duplicates were present
}

答案 3 :(得分:0)

您可以使用以下代码:

var isExisted = list.Count(item => item.Param == "test") >= 2;

您案例中的示例解决方案:https://dotnetfiddle.net/1y4w9K