コレクションの要素を一意にする
C#で、コレクションの要素を一意にする処理(C++のstd::unique)をしたく、.NETのBCLに用意されていないかと探していました。
System.Linq.Distinct がそれにあたるようです。
今回行いたかったのは、次のような処理です。
{ 0, 1, 1, 2, 3, 3, 4 } → { 0, 1, 2, 3, 4 }
using System; using System.Linq; class Program { static void Main() { var source = new int[] { 0, 1, 1, 2, 3, 3, 4 }; var result = source.Distinct(); // { 0, 1, 2, 3, 4 } foreach (var i in result) { Console.WriteLine(i); } } }
実行結果
0
1
2
3
4
期待通りの結果を得ることができました。