选择不同的对象并使用LINQ对它们进行排序

时间:2012-06-01 09:32:40

标签: c# linq

我有不同的表和不同的数据,但它们共享一个共同的Created DateTime列。

在LINQ中是否可以对所有4个表执行select查询并按Created对所有对象进行排序 并将它们作为列表返回?

2 个答案:

答案 0 :(得分:3)

你可以做这样的事情

t1.Select(i => new {Value = (object)i, Created = i.Created})
  .Concat(t2.Select(i => new {Value = (object)i, Created = i.Created}))
  .Concat(t3.Select(i => new {Value = (object)i, Created = i.Created}))
  .Concat(t4.Select(i => new {Value = (object)i, Created = i.Created}))
  .OrderBy(i => i.Created)
  .Select(i => i.Value)
  .ToList();

答案 1 :(得分:1)

您可以使用

查询表格
var q1 = from t1 select Created;
var q2 = from t2 select Created;
var q3 = from t3 select Created;
var q4 = from t4 select Created;

然后使用

var res = q1.Union(q2).Union(q3).Union(q4).OrderBy(p=>p).ToList();

var q1 = (from t1 select Created)
         .Union(from t2 select Created)
         .Union(from t3 select Created)
         .Union(from t4 select Created)
         .OrderBy(p=>p).ToList();