Linq to objects 何时不使用LINQ转换对象?

Linq to objects 何时不使用LINQ转换对象?,linq-to-objects,Linq To Objects,什么时候我不应该使用LINQ来创建对象 已询问,但未涵盖何时不使用L2O。对于我而言,当我在基于.Net 2.0的项目中编程时没有选择时。解释,时间: 您没有某些数据项的集合 您不需要从原始集合生成另一个集合,但需要经过某种转换或过滤。这可能是排序、投影、应用谓词、分组等 在“恢复”中,将不操纵任何类型的对象组。当然,当您没有c#3.0或更高版本时,其中一个原因是性能不是您所需要的。如果IEnumerable的底层实现没有索引器,调用Last()、Skip()、ElementAt()等可能会

什么时候我不应该使用LINQ来创建对象


已询问,但未涵盖何时不使用L2O。

对于我而言,当我在基于.Net 2.0的项目中编程时没有选择时。

解释,时间:

  • 您没有某些数据项的集合
  • 您不需要从原始集合生成另一个集合,但需要经过某种转换或过滤。这可能是排序、投影、应用谓词、分组等

在“恢复”中,将不操纵任何类型的对象组。当然,当您没有c#3.0或更高版本时,其中一个原因是性能不是您所需要的。如果
IEnumerable
的底层实现没有索引器,调用
Last()、Skip()、ElementAt()
等可能会导致O(坏)性能。

我同意其他方法,即:

  • 3.0号+
  • 性能不是一个大问题
然而,还有一个需要添加到列表中的事实是,它可能会导致糟糕的编码实践。一个简单(可能很愚蠢)的例子是太容易使用
.Distinct()
方法。同样的情况也适用于SQL,有时快捷方式会给出错误代码,这可能导致未知的和难以定位的错误

我想这可能发生在任何事情上,但是快捷方式可以使编写糟糕的代码变得更容易