Linq-找出延迟执行的最快方法是什么?
收藏

找出使用延迟执行与不使用延迟执行实现的.net框架linq方法(例如.IEnumerable linq方法)的最快方法是什么。

在进行多次编码时,我想知道是否可以正确执行该代码。找出此问题的唯一方法是访问MSDN文档以确保。有没有更快的方法,任何目录,网络上任何列表,备忘单以及您可以分享的其他窍门?如果是,请这样做。这将帮助许多linq新手(像我一样)减少错误。唯一的另一种选择是检查文档,直到一个文档使用到足以记住为止(这对我来说很难,我倾向于不记得在任何地方记录并可以查找的“任何内容”:D)。

最佳答案

通常,返回序列的方法使用延迟执行:

IEnumerable<X> ---> Select ---> IEnumerable<Y>

返回单个对象的方法不会:

IEnumerable<X> ---> First ---> Y

So, methods like Where, Select, Take, Skip, GroupBy and OrderBy use deferred execution because they can, while methods like First, Single, ToList and ToArray don't because they can't.

There are also two types of deferred execution. For example the Select method will only get one item at a time when it's asked to produce an item, while the OrderBy method will have to consume the entire source when asked to return the first item. So, if you chain an OrderBy after a Select, the execution will be deferred until you get the first item, but then the OrderBy will ask the Select for all the items.

    公众号
    关注公众号订阅更多技术干货!