使用其tag属性删除ListViewItem,而不使用foreach循环

时间:2015-05-28 08:33:55

标签: c# winforms linq listview

我的用户控件上有ListView。我已将对象的Id放在Tag的{​​{1}}属性中。

如何根据ListViewItem值从我的ListView中移除某个项目而不将所有项目置于Tag循环中?某种方式是否有LINQ?

3 个答案:

答案 0 :(得分:2)

像这样的东西

ListView.Remove(ListView.Items.First(item => item.Tag == id));

但是仍然会进行枚举..

答案 1 :(得分:2)

在ListView.Items上使用重载的Add方法,该方法接受键作为第一个参数。然后在删除时只需在ListView.Items上使用RemoveByKey()。 请参阅MSDN上的RemoveByKey()文档。

答案 2 :(得分:0)

这应该有效:

Object o = myListView.Items.FirstOrDefault(i => i.Tag == theId);
if (o != null)
{
    myListView.Items.Remove(o);
}