.Net の特定のコレクション タイプには、オプションの「初期容量」コンストラクタ パラメータがあります。例えば:
Dictionary<string, string> something = new Dictionary<string,string>(20);
List<string> anything = new List<string>(50);
MSDN で、これらのオブジェクトのデフォルトの初期容量を見つけることができないようです。
辞書に 12 項目しか格納しないことがわかっている場合、初期容量を 20 などに設定するのは理にかなっていませんか?
私の推論は、容量が StringBuilder の場合と同じように増加し、容量がヒットするたびに 2 倍になり、それぞれの再割り当てにコストがかかると仮定すると、データを保持することがわかっているサイズに事前にサイズを設定しておかない理由です。念のため部屋?初期容量が 100 で、必要なメモリが 10 個程度しかないことがわかっている場合、残りのメモリは無駄に割り当てられているように見えます。