2016-07-27 45 views

回答

11
myArray.Distinct().Count() == myArray.Length 
+4

@Habib它的獨特項目的數量,項目的數量進行比較,這似乎回答了這個問題。 –

+0

哦,男人,我需要咖啡......並休息。 +1 – Habib

5

如何

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

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

.Distinct()從列表中刪除dupicate價值 - 所以你只需要COMPAR e初始數組中的項目數量和不同的項目數量。

1

一種不同的方法,無需使用LINQ:

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

可能執行一些數據組更好。

1

雖然不是很優雅,但這是我首先想到的。

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

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

我有點晚了......我想我沒有指定<string>部分...

+0

我想你的意思是像'myArray.ToHashSet()'。奇怪的是MS沒有添加這樣的標準擴展方法。 –

相關問題