DataTableで作業していて、ResharperがループをLINQ式に変換することを推奨していることに気付きました。私はそのようにしたし、それが(簡体字)クエリ式の構文で書き直されました:LINQ - メソッドとクエリの構文の違い
var test2 = dt.Rows.Select(row => row);
そして、それは破った:
var test1 = from DataRow row in dt.Rows select row;
個人的に、私はこれにそれを書き直したメソッドの構文を好みます。
「System.Data.DataRowCollection」タイプ「System.Data.DataRowCollection」の最初の引数を受け入れる「を選択」「選択」の定義なし 拡張メソッドが含まれていませんが見つけることができる(あなたが不足しています使用するディレクティブまたはアセンブリ参照?)
クエリ式はtranslated to method callsなので、なぜ最初のものは動作しますが、2番目のものはありませんか?私はどちらかあるいはどちらも、明らかにそうではないことを期待していました。
これは 'DataRowCollection'が' IEnumerable 'ではなく' IEnumerable'を実装しているので必要です。 –
@ChrisShouts:ああ、私はこれに気付いたことがありますが、決してまったく正確につぶれませんでした。 「間違った」IEnumerableを実装しているという事実は、私が見逃していたものです。 :) – Chris