是否可以声明一个
ListViewItem
数组?例如
ListViewItem[] arrayItems;
如果是可能,我该如何填充数组?
是否可以拥有非固定大小的数组?
是的!可以将 List 声明为数组。
对于指定长度使用如下:
ListViewItem[] arrayItems = new ListViewItem[5];
arrayItems[0] = new ListViewItem("Text1");
arrayItems[1] = new ListViewItem("Text2");
// so on
对于未指定长度,请使用以下内容:
List<ListViewItem> arrayItems = new List<ListViewItem>();
arrayItems.Add(new ListViewItem("Text1"));
arrayItems.Add(new ListViewItem("Text2"));
// When you want to pass it as array, use arrayItems.ToArray();
或者如果您有一些带有某些文本属性的对象列表:
List<ListViewItem> arrayItems = dataSourceObject.Select(x => new
ListViewItem(x.TextProperty)).ToList();
看来您正在寻找
List<ListViewItem>
,而不是数组(ListViewItem[]
):
List<ListViewItem> myItems = new List<ListViewItem>();
// Just add items when required;
// have a look at Remove, RemoveAt, Clear as well
myItems.Add(new ListViewItem("Text 1"));
// When you want read/write the item do as if you have an array
ListViewItem myItem = myItems[0];
您可以使用 Linq 从现有
ListView
中获取项目:
myItems = listView1.Items
.OfType<ListViewItem>()
.ToList();
或追加现有列表:
List<ListViewItem> myItems = new List<ListViewItem>();
...
myItems.AddRange(listView1.Items.OfType<ListViewItem>());
如果使用 Visual Studio 和 MFC:
array<ListViewItem^>^ listviewarray = gcnew array<System::Windows::Forms::ListViewItem^>(100);
int i;
for (i = 0; i < 100; i++)
{
listviewarray[i] = gcnew ListViewItem("Text1"); // create each sensor listview element
}