未分類

C# リストコレクションの Capacity と Count について考える

準備

(なし)

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void button1_Click(object sender, EventArgs e)
{
  List<string> lt = new List<string>();
  
  listBox1.Items.Add(lt.Capacity);
  listBox1.Items.Add(lt.Count);
  lt.Add("NEC");
  listBox1.Items.Add(lt.Capacity);
  listBox1.Items.Add(lt.Count);
}

解説

リストコレクションを作成した直後の Capacity は 0 です。これは Count とも一致しています。しかし、アイテムを追加すると、Capacity は 1 ずつ増えるとは限らないようです。このサンプルの場合、Capacity は 4 となります。尚、当然ながら Count は 1 です。

少し調査したところ、Capacity の増え方には次のような規則がありそうです。
- 最初のアイテムを追加すると、4 に設定。
- 次からは Capacity の限界まで達するごとに倍に増加。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類