检查字符串数组元素是否具有不同的值

时间:2016-07-27 13:54:47

标签: c# arrays string list

检查字符串数组(列表)的元素是否具有不同值的最优雅方法是什么。

E.g。

string[] myArray = { "one", "one", "two"};

输出:

  

E.g。

string[] myArray = { "one", "two", "three" };

输出:

  

4 个答案:

答案 0 :(得分:11)

isNaN(i)===true

答案 1 :(得分:5)

怎么样

string[] myArray = { "one", "two", "three" };

bool result = myArray.Length == myArray.Distinct().Count();

.Distinct()从List中删除重复值 - 因此您只需要比较初始数组中的项目数和不同的项目数。

答案 2 :(得分:1)

不使用Linq的另一种方法:

var test = new HashSet<string>();
foreach (var str in myArray)
{
    if (test.Contains(str)) return false;
    test.Add(str);
}
return true;

使用某些数据集可能会表现得更好。

答案 3 :(得分:1)

虽然不是很优雅,但这是我想到的第一件事。

string[] myArray = { "one", "one", "three" };

bool result = myArray.Length == new HashSet<string>(myArray).Count;

我有点迟到了...我希望我没有指定<string>部分......