Linqを使った重複チェック

ある配列に重複した値があるかどうかチェックしたい。
そんなときに使えそうなLinqを使った重複チェック方法です。

チェック方法は簡単。

元の配列の要素数 = 元の配列から重複をなくした配列の要素数

これだけ。

Linqを使うとこんな感じ。


// 元の配列の要素数
int baseCount = list.count;
// 元の配列から重複要素を無くした配列の要素数
int distinctCount = (from x in list select x).Distinct().Count();

if (baseCount == distinctCount)
{
 //重複要素なし!
} else
{
 //重複要素あり!
}

Linq使わなくてもいけますが、シンプルになるので。
ハッシュとか別の方法もありますが、今回はこういう方法を紹介しました。