如何使用LINQ或Casting方法将一个字符串数组一步添加到Listview中?
这是我尝试但不起作用的地方:
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))))
答案 0 :(得分: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)
答案 1 :(得分:2)
您似乎必须使用'Items.Add'设置第一列,并使用'SubItems.AddRange'设置其余列。这是我用来完成的代码:
string[] arr = "column1|column2|column3".Split('|');
ListView1.Items.Add(arr[0]).SubItems.AddRange(new string[] { arr[1], arr[2] });
答案 2 :(得分: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())))
答案 3 :(得分: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)