HashSet コレクション型

HashSet<T> クラスは、ICollection インターフェイスおよび ICollection<T> ジェネリック インターフェイスを実装するセット コレクションです。

.NET Framework Version 4 以降では、HashSet<T> クラスは ISet<T> クラスを実装します。

セット コレクション

数学的には、セットとは個別のオブジェクトの集合であり、通常はある要素が特定のセットのメンバーかどうかを決定する規則によって定義されます。 たとえば、"1 ~ 21 の間のすべての奇数" を含むセット、または値 "1、3、5、および 7" を含むセットなどと定義できます。

HashSet クラス

HashSet<T> クラスは、数学的なセットのモデルに基づき、Dictionary<TKey, TValue> コレクションや Hashtable コレクションのキーへのアクセスと似た、高パフォーマンスのセット操作を提供します。 簡単に言えば、HashSet<T> クラスは値のない Dictionary<TKey, TValue> コレクションと考えることができます。

HashSet<T> コレクションは、並べ替えされず、重複する要素を含むことはできません。 パフォーマンスより順序または要素の重複の方が重要なアプリケーションの場合は、List<T> クラスと Sort メソッドの使用を検討してください。

HashSet<T> には、セットの加算 (結合) やセットの減算など、多くの数学的なセット操作が用意されています。 用意されている HashSet<T> 操作とそれに対応する数学的操作の一覧を次の表に示します。

HashSet(Of T) 操作

数学的に同等の操作

UnionWith

結合またはセット加算

IntersectWith

共通集合

ExceptWith

セット減算

SymmetricExceptWith

対称差

一覧のセット操作に加えて、HashSet<T> クラスには、セットが等しいかどうか、セットに重複する部分があるかどうか、およびあるセットが別のセットのサブセットまたはスーパーセットかどうかを判定するためのメソッドもあります。

参照

参照

SortedSet<T>

ISet<T>

HashSet<T>

概念

HashSet 操作と LINQ セット操作

その他の技術情報

一般的に使用されるコレクション型