我正在使用 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 指令或程序集引用?)
既然查询表达式被翻译成方法调用,为什么第一个有效而第二个无效?我希望两者都起作用或都不起作用,显然情况并非如此。