LINQ結果があり、Listがあります。 LINQでWhere()を実行し、リストから一致するすべての文字列を削除したいとします。LINQ結果から削除する方法、配列から要素を一致させる
私はエラーを取得:私は何ができるオペレータ
が含まれています以外 ローカルシーケンスは、クエリ演算子のSQL実装にLINQで使用することはできませんか?
LINQ結果があり、Listがあります。 LINQでWhere()を実行し、リストから一致するすべての文字列を削除したいとします。LINQ結果から削除する方法、配列から要素を一致させる
私はエラーを取得:私は何ができるオペレータ
が含まれています以外 ローカルシーケンスは、クエリ演算子のSQL実装にLINQで使用することはできませんか?
あなたはすべての結果をクライアントにダウンロードし、ローカルWhere
を実行するためにLINQツーSQLを強制的にあなたのWhere
呼び出しの前にAsEnumerable()
またはToList()
を呼び出す必要があります。アイテムの
(あなたWhere
呼び出しがサーバー上で実行することはできませんので、あなたがクライアント上でそれを行う必要があります)
AsEnumerableは常にマテリアライゼーションを強制しますか? –
@Rob:どうしたらいいですか? – SLaks
これは効果的なキャストだからです:http://msdn.microsoft.com/en-us/library/bb335435.aspx "AsEnumerable
あなたは(たToArrayよりも高速であるToListメソッド、との)コピーを作成する必要があります」削除RE:
var removeMe = list.Where(...).ToList();
今removeMeはを反復処理する安全であるウィルは、しかし、より良いアプローチは
がフルを投稿してください、あなたが任意の一時的なデータ構造を必要としないので、List.RemoveAll方法を使用することですコードサンプル。 –