c# - 我不应该使用 LINQ to objects 因为 Microsoft 可能会更改它吗?

标签 c# linq

我与同事就在我们的 C# 代码中使用 LINQ to Objects(IEnumerable,而不是 IQueryable)发生了争执。我当时使用的是 LINQ,他说我们不应该在我们的代码中使用外部供应商 (Microsoft) 的代码,而应该将其包装在我们自己的抽象层中。

现在我明白了这种方法适用于你有一个可能在下周倒闭的无名第三方 dll,或者当你处理数据库调用时(即返回一个公共(public)数据提供者,而不是一个SQL 或 Oracle 特定的),但在我看来,LINQ 语法太漂亮/优雅/可读,微软在未来 10 年内不会放弃。它被丢弃的可能性与 ToString("Hello {0}", firstName); 一样大。功能。

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

from e in employees
select new { e.Name, e.Id };

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

最佳答案

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

此外,请考虑 LINQ-to-objects 扩展方法所在的程序集:System.Core

关于c# - 我不应该使用 LINQ to objects 因为 Microsoft 可能会更改它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6656121/

相关文章:

c# - DevExpress过滤器编辑器: DropdownList

c# - 是否可以从 Windows 服务打印 PDF 文档?

c# - Scalebreakstyle 在图表中不起作用

c# - 使用 LinQ 从列表中获取不同的列表对象

c# - linq to sql查询使用方法

c# - LINQ Joining in C# with multiple conditions

c# - 如何在 C# 中使用 win 应用程序检测静态 ip

c# - 禁用 Azure Insights 采样不起作用

c# - ToList 性能较慢 vs foreach 性能较慢

c# - 查找行中任何单词的出现次数