要素が削除されたときにc#のハッシュテーブルを縮小するロジック(ある場合)を探しています。
よろしくハリッシュ
c#ハッシュテーブルは縮小しません。彼らは成長するだけです。再ハッシュアルゴリズムの実行には非常にコストがかかるため、ロジックは重要です。ほとんどの場合、より小さなハッシュテーブルに再ハッシュすることによって節約されたスペースは、再ハッシュのコストによって完全にオーバーランされます。特に自動ベースでは、ハッシュテーブルからの削除が「最後の」削除ではない可能性があり(アルゴリズムベースでハッシュテーブル内から判断することは不可能)、潜在的な値は単に価値がありません。
ハッシュテーブルが大幅に縮小し、本当にスペースを再利用したい場合は、(適切なサイズの)新しいハッシュテーブルを作成し、そこに要素をコピーすることをお勧めします。
余談ですが、.net2.0以降を使用しているので、おそらくDictionary<K,V>
HashTableではなくを使用する必要があります。
ドキュメント内のハッシュテーブルのサイズ変更の唯一の兆候は、負荷率を超えてハッシュテーブルのサイズが増加した場合です。急いで縮小することについての言及はありません。
MSDNには、負荷率の詳細がいくつかあります。