4

我正在尝试在 .net 2 winforms 应用程序上运行以下代码:

DataTable dt = this.GetData(null, null, true, sql);

DateTime minDate = (from f in dt.AsEnumerable()
               select f.Field<DateTime>("Timestamp")).Min();

我收到“使用 system.linq”和“.AsEnumerable()”的错误。有什么办法可以解决这个问题以使用 AsEnumerable()?还是我应该放弃这种方法?

谢谢!

4

2 回答 2

5

.NET 2 没有LINQ。您可以使用LINQBridgeAsEnumerable(),它可能包含也可能不包含DataTable. 如果是这样,您可以Cast<DataRow>()改为使用,可选地通过显式类型的范围变量:

DateTime minDate = (from DataRow f in dt.AsEnumerable()
                    select f.Field<DateTime>("Timestamp")).Min();

然后,您需要Field<T>扩展方法 on DataRow。不过,如果它不是 LINQBridge 的一部分,您也可以自己编写。

只是说清楚 -如果您还使用 Visual Studio 2005,这些都不会很好地工作,因为您需要 lambda 表达式、扩展方法等的 C# 3 功能

有没有可能升级到 .NET 3.5?它会让生活变得更轻松......

于 2011-03-01T09:58:35.583 回答
0

LINQ 是在 .NET 3.5 中引入的,所以恐怕你在这里不走运:(

于 2011-03-01T09:58:27.730 回答