如何从LINQ结果中删除匹配数组中的元素

时间:2010-11-22 15:32:49

标签: c# asp.net linq

我有LINQ结果,我有List。 我想在LINQ上执行Where()并从List中删除所有匹配的字符串。

我得到以下错误: 除Contains运算符

外,本地序列不能用于查询运算符的LINQ to SQL实现

我该怎么办?

2 个答案:

答案 0 :(得分:3)

您需要在AsEnumerable()调用之前致电ToList()Where,以强制LINQ-to-SQL将所有结果下载到客户端并执行本地Where

(由于无法在服务器上执行Where调用,您需要在客户端上执行此操作)

答案 1 :(得分:2)

您需要制作要删除的项目的副本(使用比ToArray更快的ToList):

var removeMe = list.Where(...).ToList();

现在removeMe可以安全地迭代,但是,更好的方法是使用List.RemoveAll方法,因为那时你不需要任何临时数据结构