首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否应该不使用LINQ to objects,因为Microsoft可能会更改它?

我是否应该不使用LINQ to objects,因为Microsoft可能会更改它?
EN

Stack Overflow用户
提问于 2011-07-12 04:28:00
回答 5查看 398关注 0票数 5

我和一位同事就在我们的C#代码中使用LINQ to对象(IEnumerable,而不是IQueryable)的问题发生了争论。我使用的是LINQ,他说我们不应该在代码中使用外部供应商(Microsoft)的代码,而应该自己将其包装在自己的抽象层中。

现在我理解了这种方法,当你有一个没有名字的第三方dll可能会在下周停业,或者当你处理数据库调用(即.返回一个通用的数据提供程序,而不是SQL或Oracle特定的提供程序),但在我看来,LINQ语法太漂亮/优雅/可读,微软在未来10年内不会放弃。它与ToString("Hello {0}",firstName);功能一样有可能被删除。

我可以放弃争论,实现我们自己的LINQ库,在幕后调用标准的LINQ方法,但这不是已经做完了吗?另外,我只能使用扩展方法,我不知道如何包装它:

代码语言:javascript
复制
from e in employees
select new { e.Name, e.Id };

你的论点是什么,支持还是反对使用LINQ to objects ( IEnumerable扩展方法)?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-12 04:29:50

你的朋友错了。LINQ是C# 3.0的旗舰特性,并且不会离开该语言。微软总有可能停止支持C# (尽管我对此深表怀疑),但只要有C#,就会有LINQ。

另外,还要考虑LINQ-to-objects扩展方法驻留在哪个程序集中:System.Core

票数 12
EN

Stack Overflow用户

发布于 2011-07-12 04:29:23

他完全错了。

该论点仅在处理可替换组件时适用,例如数据库平台。

微软非常小心地避免在.Net中做出破坏性的更改;他们绝不会放弃LINQ。

为了回答您的其他问题,查询理解语法(from x in y)是一种被转换为方法调用的编译器特性。

如果您编写自己的方法,编译器将很乐意使用它们。

已经有LINQ方法的第三方实现,例如LINQBridge (用于.Net 2.0,它早于LINQ2.0)或EduLINQ (出于教育目的编写)

票数 10
EN

Stack Overflow用户

发布于 2011-07-12 04:30:25

我使用的是LINQ,他说我们不应该在我们的代码中使用外部供应商的代码,但我们应该自己把它包装在我们自己的抽象层中。

它是该语言的核心部分(即,C#语言规范的一部分)。只要C#还存在,它就会一直存在。它的改变将破坏改变,并将是微软的客户的巨大成本。他们不会这么做的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6656121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档