読者です 読者をやめる 読者になる 読者になる

シーケンスから重複した要素を取り除くには(Unique)

配列やらリストから重複を除いて一意な値を取り出したいということはよくありますが、LINQではEnumerable.Distinctメソッドを利用すると一発で実現できるようです。MSDNのサンプルそのままですが:

int[] arr = {21, 46, 46, 55, 17, 21, 55, 55};
var uniq = arr.Distinct(); // 重複を取り除く
foreach (var i in uniq)
{
    Console.WriteLine(i);
}
/* 出力結果:
21
46
55
17 */

見ての通りシーケンスをあらかじめソートしておく必要はありません。便利ですね。



Enumerable.Distinct(TSource) メソッド (IEnumerable(TSource)) (System.Linq)