2016-07-27 10 views
0

文字列配列(リスト)の要素に異なる値があるかどうかを調べる最も洗練された方法は何ですか?文字列配列要素の値が異なるか確認してください

など。

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

出力:

例えば

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

出力:

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

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

.Distinct()は、一覧からdupicate値を削除する方法について

答えて

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

...私は<string>部分を指定する必要はありませんでした希望、それは質問に答えるようです。 –

+0

オハイオ州の男、私はコーヒーが必要...と壊れます。 +1 – Habib

5

- ので、あなただけの比較例する必要があります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; 

私は一種の遅刻...そして、それはアイテムの数とユニークなアイテムの数を比較し@Habib私は

+0

あなたは 'myArray.ToHashSet()'のようなものを意味すると思います。 MSがそのような標準的な拡張メソッドを追加しなかったのは奇妙です。 –

関連する問題