2010-11-22 45 views
1

我有LINQ結果,並且我有List。 我想在LINQ上執行Where()並從列表中刪除所有匹配的字符串。如何從LINQ結果中刪除匹配數組中的元素

我得到的錯誤: 本地序列不能在LINQ用於查詢操作的SQL實現除包含運營商

我能做些什麼?

+2

請張貼滿代碼示例。 – 2010-11-22 15:34:21

回答

3

你需要調用AsEnumerable()ToList()Where調用之前強制LINQ到SQL下載所有結果到客戶端,並執行本地Where

(因爲你的Where呼叫不能在服務器上執行,你需要做的是在客戶端上)

+0

AsEnumerable是否始終強制物化? – 2010-11-22 15:35:44

+0

@Rob:它怎麼會不? – SLaks 2010-11-22 15:35:58

2

你需要做複印件(ToList,比ToArray的快)的項目,你」的再去除:

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

現在removeMe西港島線是安全的遍歷,但是,一個更好的辦法是使用List.RemoveAll方法,因爲這樣你就不需要任何臨時數據結構