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

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

问题描述:

有没有办法检查数组中是否存在多于一次的相等的元素,而不是按顺序比较每个元素。检查数组中的至少两个元素是否相等

示例:在INT []数组1 = {1,3,4,2,4};元素4出现两次。

+1

请显示一些示例数据和所需输出。 – DarkKnight

+1

'if(new Set(array).Count!= array.Length){...}' – dasblinkenlight

+0

@DoThanhTung:检查我的答案。 – DarkKnight

您只需要检查是否有原始阵列之间有什么区别,它是Distinct()版本。

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

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 
+0

对不起,但我想在数组中比较。 –

+0

因为你更新你的问题我会更新我的答案 –

+0

我该怎么办,如果我想要返回值是布尔类型 –

您可以使用下面的代码:

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

样品溶液在你的情况:https://dotnetfiddle.net/1y4w9K

+0

我编辑我的问题。就我而言,我没有像“测试”那样的确切值。我只想检查一个数组中的两个元素是否相等。 –

+0

在你的情况下,“测试”是4,对不对? –

+0

@DoThanhTung:查看我的编辑:)。 –

您可以使用​​方法获取阵列的独特值和与原始阵列的比较长度

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

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