c#在.NET 2上使用DataTable AsEnumerable()

时间:2011-03-01 09:56:04

标签: c# linq .net-2.0 datatable asenumerable

我正在尝试在.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()?或者我应该放弃这种方法?

谢谢!

2 个答案:

答案 0 :(得分:5)

.NET 2 没有 LINQ。您可以使用LINQBridgeAsEnumerable()可能包括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中引入的,所以我担心你在这里运气不好:(