ListBoxコントロールには、ListItemCollectionItems
タイプのプロパティがあります。
なぜ書けないのか理解できます
foreach (var item in ShipperListBox.Items)
{
if (item.Selected) count++;
}
しかし、代わりに書く必要があります
foreach (ListItem item in ShipperListBox.Items)
{
if (item.Selected) count++;
}
それはListItemCollection
実装IEnumerable
と関係があり、そうではありません(この質問IEnumerable<ListItem>
で説明されているように)。
しかし、私が得られないのは、次のことが問題にならない理由です。
for (int i = 0; i < ListBox1.Items.Count; i++)
{
if (ListBox1.Items[i].Selected) count++;
}
ListItemCollectionのどの部分ListBox.Items[i]
が、タイプがコンパイラーに明確になっていListItem
ますか?