gpt4 book ai didi

linq - 如何在 C++/CLI 中使用 LINQ - 在 VS 2010/.Net 4.0 中

转载 作者:行者123 更新时间:2023-12-03 08:57:03 24 4
gpt4 key购买 nike

只是想知道是否有办法在 C++/CLI 中使用 LINQ。我发现了一篇专注于 VS 2008 的帖子,并且需要一系列针对 System::String 类的解决方法。我在 CodeProject 上看到了一些框架替换,但我想知道是否有办法直接在 C++/CLI 中使用它。如果可以的话,有人有一个很好的例子吗?

最佳答案

你说的是“语言综合查询”还是System::Linq命名空间?我认识的每个程序员都更喜欢函数调用语法而不是 LINQ 语法。

C++/CLI 不支持 LINQ 语法。过去,数据库支持一种语言集成查询形式,称为嵌入式 SQL,如今它几乎已死。嵌入式 SQL(以及后来的 LINQ-to-SQL)一开始是一个愚蠢的想法,人们后来发现数据库查询逻辑应该在数据库中,而不是混入业务逻辑中。

LINQ-to-objects 是一个更有用的想法,但 SQL 语法感觉不合适。所以 C# 程序员倾向于直接调用 LINQ 库函数。

C++ 并不真正需要 LINQ,因为我们有模板。由模板实现的标准库算法是 LINQ 优势的超集:它们可以专门用于特定容器,但是您可以在没有容器类的任何帮助的情况下获得良好的默认实现。它们编译成更高效的代码,因为重载决议发生在特化之后(与泛型不同)。好的,模板在运行时反射方面不如泛型好,但 C# 扩展方法也不能很好地与运行时反射配合使用。 C++ 标准算法的最大缺点是编写谓词仿函数的冗长,但 C++0x 引入了 lambdas 来解决这个问题。

C++/CLI 真正需要的是适用于 .NET 容器的标准算法版本。和here it is .例如,LINQ 的 Where方法非常接近 find_if .现在我们只需要微软快点实现最终的 C++0x 规范。

关于linq - 如何在 C++/CLI 中使用 LINQ - 在 VS 2010/.Net 4.0 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com