【发布时间】:2016-09-28 11:36:33
【问题描述】:
我有两个通用列表,存储了两种不同的类型:
class A {
public int id;
//...
}
class B {
public int id;
//...
}
他们有一个相似的属性,id。现在第一个列表具有一定的对象及其 ID 顺序,而第二个列表具有完全不同的 ID 顺序:
List<A> listA; // the ids of objects inside go as follows: 4, 5, 1
List<B> listB; // the ids of objects inside go as follows: 1, 4, 5
我想对 listB 进行排序,以便 listB[0].id==listA[0].id、listB[1].id==listA[1].id 等。考虑过使用 Join,但不知道在 OrderBy 中添加什么。
【问题讨论】:
-
你为什么不创建一个带有ID的类
Mother,让你的两个类继承它然后按它排序? -
listB[1].id==listA[2].id不应该是listB[1].id==listA[1].id吗? -
@Nasreddine 是的,已修复,谢谢
-
另外,当
ListA有一个带有Id的项目在ListB中不存在时会发生什么?例如,您不能只从ListB[1]转到ListB[4],因此您应该只使用OrderBy(x => x.id)两个列表。