2010-10-07 38 views
2

對象的LINQ具有令人難以置信的有用的Union,IntersectExcept方法。可悲的是,我正在爲客戶工作,他們強制要求.NET 2.0,因此LINQ不是一種選擇。我仔細查看了反射的代碼,它並沒有完全反轉。非LINQ實現的聯盟,相交和除了

是否有.NET 2.0庫或易於實現的Union,IntersectExcept

+2

@wawa:如果通過「the linq dll」,您的意思是System.Core,我強烈建議不要嘗試使用.NET 3.5組件到一個正常的.NET 2程序集。它*可能*工作正常,但我99.9%肯定它不是一個受支持的方案。使用單獨的庫(例如LINQBridge)是一個更好的選擇。 – 2010-10-07 19:30:42

回答

7

任何不使用的原因LINQBridge?獲取您的LINQ到對象的善良,同時仍然針對.NET 2.0 :)

+0

+1 - 我只是建議......;) – Lucero 2010-10-07 19:31:23

+0

這些似乎仍然是擴展方法。我需要編寫另一個圖層來將它們變成非擴展名還是已經內置了? – Dinah 2010-10-07 19:33:08

+5

您可以使用VS2008和C#3編譯器,它可以很好地處理所有擴展方法,並仍然以2.0運行時爲目標。但即使如此,你也不需要實際編寫另一個圖層,這些只是簡單的靜態方法,用一些屬性來裝飾,以使編譯器可以發揮作用。 – Lucero 2010-10-07 19:35:26