1. ホーム
  2. .net

[解決済み] HashSet<T>とList<T>の違いは何ですか?

2022-04-20 18:42:59

質問

とは何が違うのか、説明してください。 HashSet<T>List<T> .NETで?

どのような場合か、例を挙げて説明してください。 HashSet<T> よりも優先されるべきです。 List<T> ?

解決方法は?

リストと違って<> ...

  1. HashSetは重複したメンバーを持たないリストです。

  2. HashSetは一意な項目のみを含むように制約されているため、内部構造は(リストと比較して)検索に最適化されており、かなり高速です。

  3. HashSetに追加すると、ブール値が返されます。

  4. Setに対して数学的な集合演算を行うことができる。Union/Intersection/IsSubsetOf など。

  5. HashSet は IList を実装せず、ICollection を実装しています。

  6. HashSetではインデックスを使用できず、列挙子のみ使用できます。

HashSetを使用する主な理由は、Set操作を実行することに興味がある場合でしょう。

2つのセット:hashSet1 と hashSet2 がある場合

 //returns a list of distinct items in both sets
 HashSet set3 = set1.Union( set2 );

は、LINQを使った同等の操作と比較して、非常に高速に動作します。書くほうもすっきりしていますね