检查数组的所有值是否不同

Muh*_*sal 3 c# arrays distinct-values

我有一个像这样的一维数组:

int[] values = new int[5] { 1, 2, 3, 4, 5 };
Run Code Online (Sandbox Code Playgroud)

现在我这样做是为了检查所有值是否不同:

bool all_values_are_different()
{
   for(int i = 0; i < values.Length - 1; i++)
   {
      search = values[i];

      for(int j = i + 1; j < 5; i++)
      {
         if(search == values[i])
            return false;
      } 
   }

   return true;
}
Run Code Online (Sandbox Code Playgroud)

C#中是否有任何方法可以检查数组中的所有值是否都不同?

Sel*_*enç 13

有几种方法:

// 1
values.Distinct().Count() == values.Length;

// 2
new HashSet<int>(values).Count == values.Length;

// 3.1
!values.Any(x => values.Count(y => x == y) > 1);


// 3.2
values.All(x => values.Count(y => x == y) == 1);
Run Code Online (Sandbox Code Playgroud)

如果任何这些表达式的结果为false,则表示您的数组具有重复项,否则所有元素都是唯一的.