私はそのHashSet<T>
タイプを調べていますが、それがコレクションの中でどこに位置づけられるのか分かりません。
これを の代わりに使用できますかList<T>
? のパフォーマンスはHashSet<T>
向上すると思いますが、その要素への個別のアクセスは確認できませんでした。
列挙のみですか?
ベストアンサー1
重要なのは、HashSet<T>
その名前の通り、セット単一のセットで実行できるのは、そのメンバーが何であるかを確定し、項目がメンバーであるかどうかを確認することだけです。
単一の要素 (例set[45]
) を取得できるかどうかを尋ねることは、セットの概念を誤解しています。セットの 45 番目の要素というものは存在しません。セット内の項目には順序がありません。セット {1, 2, 3} と {2, 3, 1} は、同じメンバーシップを持っているため、あらゆる点で同一であり、メンバーシップがすべて重要です。
を反復処理するのは、セット内のアイテムに順序を強制するため、多少危険ですHashSet<T>
。その順序は実際にはセットのプロパティではありません。それに依存しないでください。コレクション内のアイテムの順序が重要である場合、そのコレクションはセットではありません。
セットは本当に限られていて、メンバーもユニークです。その一方で、とても速いです。