我和一位同事就在我们的C#代码中使用LINQ to Objects (IEnumerable, not IQueryable)发生了争论。我正在使用LINQ,他说我们不应该在我们的代码中使用外部供应商(Microsoft)的代码,而是应该在我们自己的抽象层中包装它。
现在我理解这种方法论的用法,当你有一个可能在下周停业的无名第三方dll时,或者当你处理数据库调用时(即返回通用数据提供程序,而不是SQL或Oracle特定的提供程序),但在我看来,LINQ语法对于Microsoft来说太漂亮/优雅/易读了,他们未来10年内不太可能放弃它。这与ToString("Hello {0}", firstName);功能被删除的可能性相当。
我可以放弃争论,并实现我们自己的LINQ库,调用标准的LINQ方法,但这是否过度了呢?此外,我只能使用扩展方法,我不知道如何包装这个:
你会支持或反对使用LINQ to objects(IEnumerable扩展方法)吗?
现在我理解这种方法论的用法,当你有一个可能在下周停业的无名第三方dll时,或者当你处理数据库调用时(即返回通用数据提供程序,而不是SQL或Oracle特定的提供程序),但在我看来,LINQ语法对于Microsoft来说太漂亮/优雅/易读了,他们未来10年内不太可能放弃它。这与ToString("Hello {0}", firstName);功能被删除的可能性相当。
我可以放弃争论,并实现我们自己的LINQ库,调用标准的LINQ方法,但这是否过度了呢?此外,我只能使用扩展方法,我不知道如何包装这个:
from e in employees
select new { e.Name, e.Id };
你会支持或反对使用LINQ to objects(IEnumerable扩展方法)吗?
List<T>
等内容。我已经投票关闭此问题,因为它更适合讨论而不是具体答案。 - user7116