私はHashSet<T>
を使用してオブジェクトのコレクションを格納しています。これらのオブジェクトはすでにSystem.Guid
の一意のIDを持っていますので、むしろHashSet<>
はオブジェクトをハッシュする方法を理解するのではなく、既存のIDを使用します。ハッシュのビルドをオーバーライドし、ハッシュ値としてID値のビルドを使用するようにプログラムを強制するにはどうすればよいですか?オブジェクトをハッシュセットでハッシュする方法を制御するには
もこれだけGuid
に基づいてHashSet<T>
からオブジェクトを取得する方法があり、私は私のHashSet<>
でオブジェクトのGuid
を知っていると言いますか?あるいは、代わりに辞書を使うべきですか?
KeyedCollectionはデフォルトで内部的に辞書を使用するため、ここでは注意してください.-Pドキュメントより "デフォルトで、KeyedCollectionには検索が含まれています辞書。アイテムがKeyedCollection に追加されると、そのアイテムのキーが一度抽出され、検索の高速化のためにルックアップ辞書に保存されます。 " –