按特定顺序排序IQueryable

时间:2017-11-01 19:56:15

标签: c# sorting iqueryable

我有一张表,我希望按照特定顺序和日期按名称提取项目。

id name  date
1  XYZ   1:30
2  ABC   1:40
3  LMNOQ  1:50
4  ABC   1:20

我创建了订单

List<string> itemNames = new List<string>();
       documentOrder.Add("XYZ");
       documentOrder.Add("ABC");     
       documentOrder.Add("LMNOQ");

然后提取数据,我认为订单将保持不变。

var myTable = _context.TheTable.Where(x => itemNames.Contains(x.id));

myTable数据看起来像

id name  date
1  XYZ   1:30
2  ABC   1:40
4  ABC   1:20
3  LMNOQ  1:50

现在我需要按日期排序而不会弄乱名称顺序。我需要它看起来像这样。

id name  date
1  XYZ   1:30
2  ABC   1:20
4  ABC   1:40
3  LMNOQ  1:50

2 个答案:

答案 0 :(得分:3)

var myTable = _context.TheTable.Where(x => itemNames.Contains(x.id))
                      .OrderBy(x => x.name).ThenBy(x => x.date);

答案 1 :(得分:2)

当使用IQueryable时,您可以根据需要(通过名称,然后按日期...看起来有点像时间)订购多个排序语句。

var orderedQueryable = queryable.OrderBy(q => q.Name).ThenBy(q => q.Date);