Linq从c#中的ListViewItemCollections中选择项目

Vin*_*pin 13 c# linq

如何在C#中使用Linq从ListViewItemCollections中选择ListViewItem?

我尝试使用它,但它没有工作..

ListViewItemCollections lv = listview1.items;

var test = from xxx in lv where xxx.text = "data 1" select xxx;


test   <--- now has the listviewitem with "data 1" as string value..
Run Code Online (Sandbox Code Playgroud)

Hom*_*mam 26

要获取枚举器ListViewItem,必须转换ItemsListView 的集合:

IEnumerable<ListViewItem> lv = listview1.items.Cast<ListViewItem>();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用LINQ:

 var test = from xxx in lv 
            where xxx.text = "data 1" 
            select xxx;
Run Code Online (Sandbox Code Playgroud)

  • @Preet Sangha:我认为不需要它,因为,添加到ListView的项总是能够转换为`ListViewItem` (3认同)
  • 我认为您应该使用:`listview1.items.OfType &lt;ListViewItem&gt;();`以避免可能的强制转换异常 (2认同)

Ahm*_*gdy 6

ListViewItemCollections lv = listview1.items;

var test = from ListViewItem xxx in lv where xxx.text == "data 1" select xxx;
Run Code Online (Sandbox Code Playgroud)

要么

listview1.items.Cast<ListViewItem>().Where(i => i.text == "date 1");
Run Code Online (Sandbox Code Playgroud)