配列やらリストから重複を除いて一意な値を取り出したいということはよくありますが、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)