我正在尝试在.net 2 winforms app上运行以下代码:
DataTable dt = this.GetData(null, null, true, sql);
DateTime minDate = (from f in dt.AsEnumerable()
select f.Field<DateTime>("Timestamp")).Min();
我收到“using system.linq”和“.AsEnumerable()”的错误。有什么方法可以解决这个问题,使用AsEnumerable()?或者我应该放弃这种方法?
谢谢!
答案 0 :(得分:5)
.NET 2 没有 LINQ。您可以使用LINQBridge,AsEnumerable()
可能包括DataTable
Cast<DataRow>()
扩展方法。如果是,则可以改为使用DateTime minDate = (from DataRow f in dt.AsEnumerable()
select f.Field<DateTime>("Timestamp")).Min();
,可选地通过明确键入的范围变量:
Field<T>
然后 还需要DataRow
上的{{1}}扩展方法。如果它不是LINQBridge的一部分,你可以自己写一下。
只是为了说清楚 - 如果您还使用Visual Studio 2005, none 将会愉快地工作,因为您需要lambda表达式,扩展方法等的C#3功能。
有没有可能升级到.NET 3.5?这会让生活变得更轻松......
答案 1 :(得分:0)
LINQ是在.NET 3.5中引入的,所以我担心你在这里运气不好:(