检查多个变量是否没有任何重复值的更好方法

本文关键字:更好 方法 任何重 变量 是否 检查 | 更新日期: 2023-09-27 18:36:37

我有一些变量,例如这些字符串:

string option1 ,option2, option3, option4; 

具有未知值。似乎我可以以这种方式检查它们中没有两个是相等的(没有重复):

if(option1 !=option2 && option1 != option3 &&...)
    //

但是如果我有很多变量,那么我怎么能做到不像上面那么丑陋呢?

检查多个变量是否没有任何重复值的更好方法

我可能会使用 LINQ,这当然需要将它们放入集合中。

public static bool HasDuplicates<T>(params T[] arr)
{
    return arr.Distinct().Count() != arr.Length;
}

当然,您可以按如下方式调用它:

if(!HasDuplicates(option1 ,option2, option3, option4))
{
    // Code
}

可能有更好的方法来运行这种比较,但这似乎非常简单,如果不出意外的话,这是一个很好的起点。

另外,我不完全确定你的意思是要确保option1不等于任何其他人,或者没有任何重复项。我选择了更复杂的后一种情况,但是如果我猜错了,您可以轻松地用Contains运行类似的表达式。

你可以得到另一个有区别的数组

int[] s = { 1, 2, 3, 3, 4};
int[] q = s.Distinct().ToArray();