合并两个列表并排序

卡兰·吉尼马夫
class A
{
   int id,
   DateTime joinDate,
   string name
}

class B
{
   int uniqueId,
   DateTime joinDate,
}

我有两个包含上述对象的列表

List<A> listofA
List<B> listofB

我想
将这两个列表合并到一个新列表中,然后按
两个列表共有的 DateTime 对新列表进行排序

我已按照此链接了解合并逻辑。

请提供一个可行的解决方案来理解这种排序逻辑

结果到此为止

List<object> mergedList = (from x in A select (Object)x).ToList();
mergedList.AddRange((from x in B select (Object)x).ToList());

合并列表.Orderby()???基于 joinDate

凯厄斯·贾德

这样的事情可以工作:

var m = A.Select(a => new { a.JoinDate, O = (object)a })
  .Concat(B.Select(b => new { b.JoinDate, O = (object)b }))
  .OrderBy(c => c.JoinDate);

但请注意,对于列表中的每个项目,您将不得不询问 O 是 ClassA 还是 ClassB

for(var x in m){
  if(x.O is ClassA)
    ...
}

我确实认为这些类应该从一个共同的祖先继承下来或实现一个共同的接口的评论中的建议会使它们更容易使用..

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章