检查字符串数组(列表)的元素是否具有不同值的最优雅方法是什么。
E.g。
string[] myArray = { "one", "one", "two"};
输出:
假
E.g。
string[] myArray = { "one", "two", "three" };
输出:
真
答案 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>
部分......