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

Fun*_*nky 4 c# linq datatable .net-2.0 asenumerable

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

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

DateTime minDate = (from f in dt.AsEnumerable()
               select f.Field<DateTime>("Timestamp")).Min();
Run Code Online (Sandbox Code Playgroud)

我收到"using system.linq"和".AsEnumerable()"的错误.有什么方法可以解决这个问题,使用AsEnumerable()?或者我应该放弃这种方法?

谢谢!

Jon*_*eet 5

.NET 2不具有 LINQ.您可以使用LINQBridge,它可能包含也可能不包含AsEnumerable()扩展方法DataTable.如果是,您可以Cast<DataRow>()改为使用,可选地通过显式类型的范围变量:

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

然后你需要Field<T>扩展方法DataRow.如果它不是LINQBridge的一部分,你可以自己写一下.

只是要清楚- 没有的,这将工作愉快,如果您还使用Visual Studio 2005中,因为你需要的C#lambda表达式,扩展方法等3特点

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