我有LINQ結果,並且我有List。 我想在LINQ上執行Where()並從列表中刪除所有匹配的字符串。如何從LINQ結果中刪除匹配數組中的元素
我得到的錯誤: 本地序列不能在LINQ用於查詢操作的SQL實現除包含運營商
我能做些什麼?
我有LINQ結果,並且我有List。 我想在LINQ上執行Where()並從列表中刪除所有匹配的字符串。如何從LINQ結果中刪除匹配數組中的元素
我得到的錯誤: 本地序列不能在LINQ用於查詢操作的SQL實現除包含運營商
我能做些什麼?
你需要調用AsEnumerable()
或ToList()
您Where
調用之前強制LINQ到SQL下載所有結果到客戶端,並執行本地Where
。
(因爲你的Where
呼叫不能在服務器上執行,你需要做的是在客戶端上)
AsEnumerable是否始終強制物化? – 2010-11-22 15:35:44
@Rob:它怎麼會不? – SLaks 2010-11-22 15:35:58
你需要做複印件(ToList,比ToArray的快)的項目,你」的再去除:
var removeMe = list.Where(...).ToList();
現在removeMe西港島線是安全的遍歷,但是,一個更好的辦法是使用List.RemoveAll方法,因爲這樣你就不需要任何臨時數據結構
請張貼滿代碼示例。 – 2010-11-22 15:34:21