HashSet・SortedSetでは同じ値の要素を複数回格納しようとしても重複して格納されることはなく、常に1つだけが格納されます。 この点はDictionaryのキーと似た動作と言えますが、すでに存在する状態で追加しようとしても例外がスローされることはありません。
HashSet・SortedSetともに同じ要素が重複した状態になることはありませんが、HashSetでは格納した時の順序は維持されます(最初に格納された順になります)。
HashSetに重複する要素を追加する
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
var s = new HashSet<int>();
// 同じ要素を複数回追加
// (同じ値がすでに存在する場合は、追加されない)
s.Add(3);
s.Add(3);
s.Add(1);
s.Add(1);
s.Add(2);
s.Add(3);
Console.WriteLine(string.Join(", ", s));
}
}
実行結果
3, 1, 2