我有LINQ结果,我有List。 我想在LINQ上执行Where()并从List中删除所有匹配的字符串。
我得到以下错误: 除Contains运算符
外,本地序列不能用于查询运算符的LINQ to SQL实现我该怎么办?
答案 0 :(得分:3)
您需要在AsEnumerable()
调用之前致电ToList()
或Where
,以强制LINQ-to-SQL将所有结果下载到客户端并执行本地Where
。
(由于无法在服务器上执行Where
调用,您需要在客户端上执行此操作)
答案 1 :(得分:2)
您需要制作要删除的项目的副本(使用比ToArray更快的ToList):
var removeMe = list.Where(...).ToList();
现在removeMe可以安全地迭代,但是,更好的方法是使用List.RemoveAll方法,因为那时你不需要任何临时数据结构