2012-07-14 66 views
2

有什么方法可以看到LINQ表达式是如何实现的? (例如,联盟/相交,等等)。这将是非常有用的,因为有时LINQ比自定义代码执行速度更快,有时它不会。从一开始就知道要使用什么会很高兴。c#系统方法&& LINQ实现

我知道还有工具可以让你看到.NET系统方法的实现,但我不记得它的名字。任何人都可以指出我的意思吗?

谢谢!

+0

有关如何实现LINQ *的深入讨论 - 尽管不一定实现BCL版本的实现方式 - 您可能会对Jon Skeet的[Edulinq系列文章(http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/default.aspx)。 – LukeH 2012-07-14 17:29:48

回答

4

我知道那里也有工具,它允许你看到.NET系统方法 实现,但我不记得它的名字。

内存扩展方法在System.Core程序集的System.Linq.Enumerable类中实现。

  • Reflector是一个工具的一个示例,它允许您在给定编译程序集的情况下轻松检查实现。
  • ILSpy是一个免费的替代品。

但.NET源代码现在是freely available。所以不要犹豫,直接咨询。

1

使用免费的反编译器dotPeek。它也内置于ReSharper