是否可以做一个ListViewItem数组?

问题描述 投票:0回答:3

是否可以声明一个

ListViewItem
数组?例如

ListViewItem[] arrayItems;
  • 如果是可能,我该如何填充数组?

  • 是否可以拥有非固定大小的数组?

c# arrays winforms listview
3个回答
2
投票

是的!可以将 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();

1
投票

看来您正在寻找

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>());

0
投票

如果使用 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
        }
© www.soinside.com 2019 - 2024. All rights reserved.