2012-07-14 80 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