从ListView子项自动构建数组
本文关键字:构建 数组 ListView | 更新日期: 2023-09-27 18:17:37
我正在通过调用
填充ListView.Items
:for(...)
{
view.Items.Add(new ListViewItem(new [] { nickname, fullname } ));
}
我后来想得到所有fullname
值的string[]
。显然,这是琐碎的做在正常的C风格的代码与for循环,但我想知道如果c#语言功能允许这做得更整齐地使用lambda等?
因为项目是按顺序添加的。第二个子项是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;
}