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

时间:2010-12-23 17:42:54

标签: c# .net .net-3.5

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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
             };

答案 1 :(得分:1)

这样的事情:

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