.net Union、Intersect和Except的非LINQ实现

.net Union、Intersect和Except的非LINQ实现,.net,.net-2.0,union,intersection,.net,.net 2.0,Union,Intersection,LINQ to对象具有非常有用的联合、相交和除方法。可悲的是,我为一个客户工作,他们强制执行.NET2.0,所以LINQ不是一个选项。我仔细查看了反射的代码,它根本没有很好地反转 是否有.NET 2.0库或易于实现的Union、Intersect和除了?任何不使用的理由?在仍然以.NET 2.0:)为目标的情况下,让您的LINQ to对象保持良好状态。@wawawa:如果您所说的“LINQ dll”是指System.Core,我强烈建议不要尝试使用栓接在普通.NET 2程序集上的.NET 3.5

LINQ to对象具有非常有用的
联合
相交
方法。可悲的是,我为一个客户工作,他们强制执行.NET2.0,所以LINQ不是一个选项。我仔细查看了反射的代码,它根本没有很好地反转


是否有.NET 2.0库或易于实现的
Union
Intersect
除了

任何不使用的理由?在仍然以.NET 2.0:)为目标的情况下,让您的LINQ to对象保持良好状态。

@wawawa:如果您所说的“LINQ dll”是指System.Core,我强烈建议不要尝试使用栓接在普通.NET 2程序集上的.NET 3.5程序集。它可能工作得很好,但我99.9%确定它不受支持。使用一个单独的库(例如LINQBridge)是一个更好的选择。这些似乎仍然是扩展方法。我是否需要编写另一层来将它们转换为非扩展,还是已经内置了?您可以使用VS2008和C#3编译器,它可以很好地处理所有扩展方法,并且仍然以2.0运行时为目标。但即使如此,您也不需要实际编写另一层,这些只是简单的静态方法,用一些属性修饰,以使编译器神奇地工作。