私は DataTable を扱っていて、Resharper がループを LINQ 式に変換できることを推奨していることに気付きました。私はそうしましたが、クエリ式の構文(簡略化)で書き直されました:
var test1 = from DataRow row in dt.Rows select row;
個人的には、メソッドの構文が好きなので、次のように書き直しました。
var test2 = dt.Rows.Select(row => row);
そして壊れた。
'System.Data.DataRowCollection' には 'Select' の定義が含まれておらず、タイプ 'System.Data.DataRowCollection' の最初の引数を受け入れる拡張メソッド 'Select' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか? ?)
クエリ式はメソッド呼び出しに変換されるため、最初の式は機能するのに 2 番目の式は機能しないのはなぜですか? 両方が機能するか、どちらも機能しないことを期待していましたが、明らかにそうではありません。