C#3.5合并2个不同类型的列表

我在C#3.5中有2个通用列表List L1List L2

问题: type1有一个名为“key1”的属性,type2有一个名为“key2”的属性如何在key1 = key2上合并L1和L2。 这两个列表都没有排序,但我欢迎任何关于如何根据属性对列表进行排序的想法。

我希望能够将两个列表合并到一个键上。 我知道这不是一本字典,如果是这样的话会很好,但有一个非常具体的原因,为什么它们是我不会接受的列表,因为这是无关紧要的。

我相信你要求加入操作。 它很简单,但你需要更具体来获得更好的答案。

 var joined = from item1 in L1 join item2 in L2 on item1.Key1 equals item2.Key2 orderby item1.Key1 select new { // your selected objects/properties here }; 

像这样的东西:

 list1.Cast().Union(list2.Cast()).OrderBy(elem => elem is elem1 ? ((elem1)elem).key : ((elem2)elem).key)