C# 检查多个变量不存在的更好方法';没有任何重复的值

C# 检查多个变量不存在的更好方法';没有任何重复的值,c#,.net,conditional-statements,C#,.net,Conditional Statements,我有一些变量,如以下字符串: string option1 ,option2, option3, option4; 具有未知值。似乎我可以通过这种方式检查它们中没有两个是相等的(无重复): 但是,如果我有很多变量,那么我怎么能不像上面那样难看呢 我可能会将LINQ与此结合使用,这当然需要将它们放入一个集合中 public static bool HasDuplicates<T>(params T[] arr) { return arr.Distinct().Count()

我有一些变量,如以下字符串:

string option1 ,option2, option3, option4; 
具有未知值。似乎我可以通过这种方式检查它们中没有两个是相等的(无重复):


但是,如果我有很多变量,那么我怎么能不像上面那样难看呢

我可能会将LINQ与此结合使用,这当然需要将它们放入一个集合中

public static bool HasDuplicates<T>(params T[] arr)
{
    return arr.Distinct().Count() != arr.Length;
}
也许有更好的方法来进行比较,但这似乎很直截了当,这是一个很好的起点,如果没有其他东西的话


另外,我也不完全确定您的意思是要确保
选项1
不等于任何其他选项,还是不存在任何重复项。我使用了更复杂的后一种情况,但是如果我猜错了,您可以很容易地使用
Contains
运行类似的表达式。

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

public static bool HasDuplicates<T>(params T[] arr)
{
    return arr.Distinct().Count() != arr.Length;
}
也许有更好的方法来进行比较,但这似乎很直截了当,这是一个很好的起点,如果没有其他东西的话


另外,我也不完全确定您的意思是要确保
选项1
不等于任何其他选项,还是不存在任何重复项。我使用了更复杂的后一种情况,但是如果我猜错了,您可以很容易地使用
Contains运行类似的表达式。

您可以得到另一个具有不同

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

您可以获得另一个具有distincts的数组

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

您可以创建扩展方法,并使用fluent界面使其看起来更好,但条件/检查的数量保持不变。如果您有许多变量,但需要将它们一起使用,您是否考虑过使用数组来代替?@LasseV.Karlsen您是对的,但这里我指的不是vars数组需要的那么多;i、 这里op1-op4是我的问题表上的一个Q的答案,它需要c(4,2)检查,这有点难看。无论如何,我学会了如何在数组中找到重复项!:)感谢您的通知。您可以创建扩展方法,并使用fluent界面使其看起来更好,但条件/检查的数量保持不变。如果您有许多变量,但需要同时使用它们,您是否考虑过使用数组来代替?@LasseV.Karlsen您是对的,但这里我指的不是vars数组需要的那么多;i、 这里op1-op4是我的问题表上的一个Q的答案,它需要c(4,2)检查,这有点难看。无论如何,我学会了如何在数组中找到重复项!:)谢谢你的通知。好的。我不想有任何重复的。好的。我不想要任何复制品。