有没有办法检查数组中至少有一个元素出现多次相等而不按顺序比较每个元素。
示例:在int [] array1 = {1,3,4,2,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