Linq在.NET OOP/D中最强大、最意想不到的好处是什么?

Linq在.NET OOP/D中最强大、最意想不到的好处是什么?,linq,oop,class,Linq,Oop,Class,自从学习Linq并在其中积累经验以来,我发现自己越来越依赖它。这改变了我对课程的看法。其中一些更改是预期的(例如,更多地使用集合),但通常是意外的(例如,将类的初始数据作为XElement获取,有时只是将其保留在那里,并延迟处理) Linq to.NET OOP/D最强大、最意想不到的好处是什么?我特别考虑linqto对象和linqto xml,但也包括linqto Entities/SQL,因为它改变了您的类策略 我注意到使用LINQ有几个显著的好处: 可维护性-当您使用LINQ阅读语义转换

自从学习Linq并在其中积累经验以来,我发现自己越来越依赖它。这改变了我对课程的看法。其中一些更改是预期的(例如,更多地使用集合),但通常是意外的(例如,将类的初始数据作为XElement获取,有时只是将其保留在那里,并延迟处理)


Linq to.NET OOP/D最强大、最意想不到的好处是什么?我特别考虑linqto对象和linqto xml,但也包括linqto Entities/SQL,因为它改变了您的类策略

我注意到使用LINQ有几个显著的好处:

  • 可维护性-当您使用LINQ阅读语义转换时,更容易理解代码的功能,而不是开发人员手工编写的一些令人困惑的循环结构

  • 性能-由于LINQ的延迟和流式执行,您通常会得到性能更好的代码-通过分配工作负载或允许避免不必要的转换(特别是当只使用结果的一个子集时)。未来,随着多核处理变得越来越重要,我预计许多LINQ方法可能会发展为支持本机并行处理(想想多核排序)——这将有助于保持.NET应用程序在多代码未来的可伸缩性

还有一些其他好处:

  • 了解迭代器生成器:一旦开发人员了解了LINQ,他们中的一些人就会继续了解它是如何工作的。这有助于了解C#中的
    yield return
    语法,这是编写简洁正确的序列迭代器的有力方法

  • 专注于业务问题:LINQ使开发人员能够专注于解决底层业务问题,而不是试图优化循环和算法,使其以最少的周期运行,或使用最少的代码行。这不仅仅是拥有强大的序列转换例程库的生产力


与SQL存储过程中的解决方案相比,我觉得代码更易于维护和测试

将LINQ与扩展相结合,我得到了类似的结果(可能应该使用某种流畅的界面……)

其中,增长和共享hageDate是我可以轻松进行单元测试的扩展

正如LBushkin所说,当我们讨论时,我可以向客户介绍上面的内容

问题
我觉得我无法控制生成的SQL,发现性能问题有点神奇……

啊,这并没有像我计划的那样奏效。但是,有两个好消息。谢谢大家!
  return source.Growth().ShareOfChangeDate();