作为一个老C ++程序员,我正在努力解决一些C#问题。我想减少设置ListView的冗余。所以我尝试了下面的代码。我收到空引用错误,但我不明白为什么。编译器对我创建ListViewItems数组没有问题,但是我看不到如何使用它们。
谢谢,罗斯
ListViewItem [] items = new ListViewItem [12];
for (int i=0; i < 12; ++i) {
items [i].Text = string.Format ("F{0}", i+1);
}
答案 0 :(得分:0)
您正在为12个ListViewItems数组分配内存,但尚未创建ListViewItem:
相反,请尝试以下操作:
List<ListViewItem> items = new List<ListViewItem>();
for (int i = 0; i < 12; i++) {
items.Add( //using the List.Add() method to add an item
new ListViewItem
{
Text = string.Format ("F{0}", i+1); //Object Initialization syntax to add an item after construction
});
}
这将创建一个列表(可扩展的集合);在循环中创建一个新的ListViewItem,为该ListViewItem提供所需的文本,然后将该项目添加到列表中。
答案 1 :(得分:0)
您似乎收到了空引用,因为您试图在未初始化的对象上设置属性(文本)(ListViewItem [i])。 试试这个:
ListViewItem [] items = new ListViewItem [12];
for (var i = 0; i < items.Length; ++i) {
items[i] = new ListViewItem{Text = string.Format ("F{0}", i+1)};
}