我需要检查ListView的CheckedItems集合中是否存在具有特定名称的项目。
到目前为止,我已经尝试过:
ListViewItem item = new ListViewItem(itemName);
if (listView1.CheckedItems.IndexOf(item) >= 0)
return true;
和
ListViewItem item = new ListViewItem(itemName);
if (listView1.CheckedItems.Contains(item))
return true;
这些都不起作用。有没有一种方法可以不循环检查CheckedItems并一一检查它们呢?
最佳答案
为此,您可以使LINQ
受益:
bool itemChecked = listView1.CheckedItems.OfType<ListViewItem>()
.Any(i => i.Text == itemText);
//You can also retrieve the item with itemText using FirstOrDefault()
var checkedItem = listView1.CheckedItems.OfType<ListViewItem>()
.FirstOrDefault(i=>i.Text == itemText);
if(checkedItem != null) { //do you work...}
您还可以使用
ContainsKey
来确定是否选中了该项目(名称为itemName
):bool itemChecked = listView1.CheckedItems.ContainsKey(itemName);