9
我用数据表工作,发现ReSharper的建议我可以循环转换成LINQ表达式。我这样做了,它被重写查询表达式语法(简体):LINQ - 法VS查询语法差异
var test1 = from DataRow row in dt.Rows select row;
就个人而言,我更喜欢方法的语法所以它重写了这个:
var test2 = dt.Rows.Select(row => row);
就坏了。
“System.Data.DataRowCollection”不包含“选择”的定义,并没有 扩展方法“选择”接受型“System.Data.DataRowCollection”的第一个参数可以找到(是否缺少使用指令或组件参考?)
由于查询表达式是translated to method calls,为什么第一个工作,但不是第二个?我预计两者兼得或两者都不可行,显然不是这样。
这是必要的,因为'DataRowCollection'实现'IEnumerable',不'IEnumerable的'。 –
2012-02-29 16:29:08
@ChrisShouts:啊,我注意到这之前,但从未完全究竟为什么突然意识到。它实现了“错误的”IEnumerable的事实是我错过了。 :) – Chris 2012-02-29 16:36:00