c# 在 .NET 2 上使用 DataTable 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();
我收到“using system.linq”和“.AsEnumerable()”的错误。有什么方法可以解决这个问题以使用 AsEnumerable() 吗?或者我应该放弃这个方法?
谢谢!
I am trying to run the following code on a .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();
I am getting errors for the "using system.linq" and the ".AsEnumerable()". Is there any way I can resolve this to use AsEnumerable()? Or should I just abandon this method?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
.NET 2 没有 LINQ。您可以使用 LINQBridge,它可能包含也可能不包含
AsEnumerable()
扩展方法数据表
。如果是这样,您可以只使用Cast()
来代替,也可以选择通过显式类型化的范围变量:然后您还需要
Field<;
扩展方法。不过,如果它不是 LINQBridge 的一部分,您也可以自己编写。DataRow
上的 T>只是为了澄清 - 如果您也使用 Visual Studio 2005,那么这些都不会愉快地工作,因为您需要 lambda 表达式、扩展方法等 C# 3 功能。
您是否有可能升级到.NET 3.5?这会让生活变得更加轻松......
.NET 2 doesn't have LINQ. You could use LINQBridge, which may or may not include the
AsEnumerable()
extension method forDataTable
. If it does, you can just useCast<DataRow>()
instead, optionally via an explicitly typed range variable:You'd then also need the
Field<T>
extension method onDataRow
. You could probably write that yourself though, if it's not part of LINQBridge.Just to make it clear - none of this will work pleasantly if you're also using Visual Studio 2005, because you need the C# 3 features of lambda expressions, extension methods etc.
Is there any possibility you could upgrade to .NET 3.5? It would make life a lot easier...
LINQ 是在 .NET 3.5 中引入的,所以恐怕你在这里运气不好:(
LINQ was introduced in .NET 3.5, so I'm afraid you are out of luck here :(