确定许多变量是否唯一的最优雅/最有效的方法是什么?

the*_*ser 1 c#

如果我有五个变量

int a,b,c,d,e;
Run Code Online (Sandbox Code Playgroud)

确保它们都是独一无二的最有效方法是什么?

if(a!=b && a!=c && a!=d && a!=e && b!=c && b!=d && b!=e && c!=d && c!=e && d!=e)
{ 
   //Is this the most efficient way??
}
Run Code Online (Sandbox Code Playgroud)

Nik*_*wal 11

优雅

int[] arr = { a, b, c, d, e };

bool b = arr.Distinct().Count() == arr.Length;
Run Code Online (Sandbox Code Playgroud)

高效

Your code is the most efficient
Run Code Online (Sandbox Code Playgroud)

我想这是你问题最简单的解释.

  • 这很容易编码,它很清楚它的作用,但它不是最有效的测试. (5认同)
  • OP特别要求进行涉及五个变量的最有效测试,而不是N个变量的稳健方法. (3认同)

pax*_*blo 7

这几乎最有效的方式.它不一定是我见过的最好看的代码,但它会工作得很好.涉及数据结构或功能的任何其他解决方案都不太可能更快.

我会重新编辑它的美丽:

if (a != b && a != c && a != d && a != e
           && b != c && b != d && b != e
                     && c != d && c != e
                               && d != e
) { 
    // Blah blah blah
}
Run Code Online (Sandbox Code Playgroud)

不一定完全相同那样的,只是一些阅读时对眼睛更容易一些.