【问题标题】:Remove ListViewItem using its tag property and without a foreach loop使用其 tag 属性删除 ListViewItem 并且不使用 foreach 循环
【发布时间】:2015-08-10 15:32:12
【问题描述】:

我的用户控件上有一个ListView。我已将我的对象的Id 放在我的ListViewItems 的Tag 属性中。

如何根据Tag 的值从我的ListView 中删除一个项目,而不将所有项目放入foreach 循环中?是否有某种方式的 LINQ?

【问题讨论】:

  • 难道 LINQ 语句内部不使用 foreach 循环来迭代集合吗?我的意思是,如果您事先不知道确切的项目,则无论如何都必须迭代集合。

标签: c# winforms linq listview


【解决方案1】:

像这样的

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

但是枚举仍然会发生..

【讨论】:

    【解决方案2】:

    这应该可行:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2011-08-31
        • 2020-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多