コレクション型でブレース付きイニシャライザを使用すると、その容量が設定されますか、それとも指定する必要がありますか?
つまり、次のことを行います。
var list = new List<string>(){ "One", "Two" };
これは次のようになります。
var list = new List<string>(2){ "One", "Two" };
コレクション型でブレース付きイニシャライザを使用すると、その容量が設定されますか、それとも指定する必要がありますか?
つまり、次のことを行います。
var list = new List<string>(){ "One", "Two" };
これは次のようになります。
var list = new List<string>(2){ "One", "Two" };
コレクション初期化子は、使用可能なAdd
メソッドを使用してアイテムをコレクションに追加します。したがって、メソッドの呼び出しで空のコンストラクターを使用する場合と同じ動作になりますAdd
。
実際には、コンパイラはオブジェクト初期化子の構文をAdd
メソッドの呼び出しに変更します。したがって、オブジェクト初期化子を使用するかどうかは無関係です。重要なのは、コンストラクターのオーバーロードを使用するかどうかと、実際に追加する項目の量です。
ドキュメントによると、オブジェクト初期化子の数が2であることを考慮すると、最終的には容量も設定されます。
容量は常に Count 以上です