c# - 如何使用 LINQ 删除符合特定条件的列表子集?

标签 c# linq

以下代码将抛出运行时异常“Collection was modified; enumeration operation may not execute.”

List<string> l = new List<string>();
l.Add("a");
l.Add("b");
l.Add("c");
foreach (string s in l.Where(s => s.CompareTo("a")>0))
    l.Remove(s);

最佳答案

您不能在枚举集合时从集合中删除项目。

在这种情况下,我会使用 List<T>.RemoveAll :

l.RemoveAll(s => s.CompareTo("a")>0);

关于c# - 如何使用 LINQ 删除符合特定条件的列表子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556409/

相关文章:

c# - 使用来自另一个微服务的公共(public)实体模型

c# - 当行具有空值时, Entity Framework 返回空对象

c# - 传递一个列表<{Anon :string}> to a function in C#

c# - 请求了错误的脚本 url

c# - ASP.NET MVC 网络 API : application/xml PUT request body is null on server side

c# - c#.net 中的 Paypal 集成

c# - USB显微镜的自动对焦算法

c# - 将 DefaultIfEmpty 与对象一起使用?

c# - 如何对 .FindAll() 的结果执行操作

c# - 从 lambda(方法)语法转换为查询语法 (LINQ)