我在C#3.5中有2个通用列表List<type1> L1
,List<type2> L2
问题: type1有一个名为“key1”的属性,而type2有一个名为“key2”的属性 如何在key1 = key2上合并L1和L2。 这两个列表都没有排序,但我欢迎任何关于如何根据属性对列表进行排序的想法。
我希望能够将两个列表合并到一个键上。我知道这不是一本字典,如果是这样的话会很好,但是有一个非常具体的原因,为什么它们是我不会接受的列表,因为这是无关紧要的。
答案 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)