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

发布于 2024-10-20 00:00:31 字数 347 浏览 3 评论 0原文

我正在尝试在 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮云落日 2024-10-27 00:00:31

.NET 2 没有 LINQ。您可以使用 LINQBridge,它可能包含也可能不包含 AsEnumerable() 扩展方法数据表。如果是这样,您可以只使用 Cast() 来代替,也可以选择通过显式类型化的范围变量:

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

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

只是为了澄清 - 如果您也使用 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 for DataTable. If it does, you can just use Cast<DataRow>() instead, optionally via an explicitly typed range variable:

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

You'd then also need the Field<T> extension method on DataRow. 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...

め七分饶幸 2024-10-27 00:00:31

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

LINQ was introduced in .NET 3.5, so I'm afraid you are out of luck here :(

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文