3

如何在一个步骤中将字符串数组添加到 Listview 中,例如使用 LINQ 或 Casting 方法?

这是我尝试过但不起作用的方法:

ListView1.Items.AddRange("a b c d e f".Split(" ").ToArray _
.Select(Function(x) New ListViewItem(x)))

更新:

再次尝试,不起作用:

ListView1.Items.AddRange( _
    New ListView.ListViewItemCollection( _
    {"Value 1", "Value 2", "Value 3"} _
   .Select(Function(x) New ListViewItem(x))))
4

4 回答 4

4

AddRange需要一个数组,但Select函数返回一个IEnumerable. 所以你只需要添加ToArray到表达式的末尾。由于Split返回一个字符串数组,因此无需在ToArray那里添加调用。

这将完成这项工作:

ListView1.Items.AddRange("a b c d e f".Split(" "c) _
                                      .Select(Function(x) New ListViewItem(x)) _
                                      .ToArray)
于 2013-09-14T00:43:15.143 回答
2

看来您必须将第一列设置为“Items.Add”,将其余列设置为“SubItems.AddRange”。这是我用来完成此操作的代码:

string[] arr = "column1|column2|column3".Split('|');
ListView1.Items.Add(arr[0]).SubItems.AddRange(new string[] { arr[1], arr[2] });
于 2013-11-29T12:48:10.020 回答
1
ListView1.Items.AddRange("a b c d e f".Split(" ".ToCharArray()))

以上应该是正确的语法,以便将这些字符添加为列表

编辑 认为我错过了 ListViewItem 集合

ListView1.Items.AddRange(new ListViewItem("a b c d e f".Split(" ".ToCharArray())))
于 2013-09-13T22:57:41.223 回答
0

完毕!

我希望这对其他人有帮助:

  ' Set the Array content
  Dim Items As String() = "ABC DEF GHI JKL".Split

  ' Add them in one step
  ListView1.Items.AddRange(Items.Select(Function(x) New ListViewItem(x)).ToArray)
于 2013-09-14T00:41:25.033 回答