SubItems[0] がなぜか埋まってる

ListViewItemSubItemsAdd でサブ項目を追加しようとすると,なぜか SubItems[0] に入れられない。

// 失敗例

ListViewItem item = new ListViewItem();
item.SubItems.Add("hoge");
item.SubItems.Add("piyo");

Console.WriteLine(item.SubItems[0].Text);  // 
Console.WriteLine(item.SubItems[1].Text);  // hoge

最初は Visual C# のバグかと思ったが,MSDN を読んだらそれらしいことが書いてあった。解決法もわかった。サブ項目をコンストラクタに渡せばいい。

// 成功例

ListViewItem item = new ListViewItem(new[] { "hoge", "piyo" });

Console.WriteLine(item.SubItems[0].Text);  // hoge
Console.WriteLine(item.SubItems[1].Text);  // piyo

ListView.Columns は普通に 0 から Add できるのに,ListViewItem.SubItems はできない。結果ずれる。こういう仕様ってどうなんだろ。