物体在foreach循环中清空

  • 本文关键字:清空 循环 foreach c#
  • 更新时间 :
  • 英文 :


i有一个列表正在传递到一个foreach循环中,该循环从列表中删除0或更多项目。基于条件,列表可能完全清空,从而导致零参考错误。处理这种情况的最佳方法是什么?

foreach (Item i in items)
{
    if (i.property == condition)
    {
        items.Remove(i);
    }
}

使用list.removeall方法

items.RemoveAll(i => i.property == condition)

它删除了与指定定义的条件匹配的所有元素 谓词。

您还可以通过创建新列表而没有匹配条件的项目(有时可能有用)

来留下原始列表(或其他集合)
var newItems = items.Where(i => i.property != condition).ToList();

最新更新