我通过调用:
填充ListView.Items
for(...)
{
view.Items.Add(new ListViewItem(new [] { nickname, fullname } ));
}
我稍后想要获得所有string[]
值的fullname
。显然,在带有for循环的普通C风格代码中,这是微不足道的,但我想知道C#语言特性是否允许使用lambdas等更好地完成这一操作?
答案 0 :(得分:2)
由于按订单添加了商品。第二个SubItem是fullname
string[] fullnames = view.Items.OfType<ListViewItem>().Select(x => x.SubItems[1].Text).ToArray();
请注意,x.SubItems[1]
的类型为ListViewSubItem
。使用属性Text
获取其字符串值。
您还可以使用匿名类型同时获取昵称和全名。
var allnames =
listView1.Items.OfType<ListViewItem>()
.Select(x => new {NickName = x.SubItems[0], FullName = x.SubItems[1]})
.ToArray();
// usage
foreach(var n in allnames)
{
string nickname = n.NickName;
string fullname = n.FullName;
}