コレクションの要素を一意にする

C#で、コレクションの要素を一意にする処理(C++のstd::unique)をしたく、.NETのBCLに用意されていないかと探していました。
System.Linq.Distinct がそれにあたるようです。


今回行いたかったのは、次のような処理です。
{ 0, 1, 1, 2, 3, 3, 4 } → { 0, 1, 2, 3, 4 }


C#

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


期待通りの結果を得ることができました。