【问题标题】:how to sort a list in ascending order LINQ如何按升序对列表进行排序LINQ
【发布时间】:2018-04-11 14:29:59
【问题描述】:

我拥有的是一个按降序排序的数据,但我打算按日期按升序获取它。

var empList = db.AttendanceLogs.OrderByDescending(x => x.DateTime).ToList();

我尝试的是Reverse();

var empList = db.AttendanceLogs.OrderByDescending(x => x.DateTime).Reverse().ToList();

但这反而引发了异常。

编辑:

arekzyla 的回答帮助了我,但我被困在我需要按升序对两列进行排序的点上,就像 DateTime 一样,我也希望 EmpId 按升序排列

【问题讨论】:

  • 你为什么不用这个:var empList = db.AttendanceLogs.OrderBy(x => x.DateTime).ToList();
  • 欢迎来到 Stack Overflow。每当您提出包含例外的问题时,请提供该例外的详细信息。接下来,查看您正在调用的方法:OrderByDescending。如果你只是打电话给OrderBy,那将使用升序。
  • 是的,只需改用orderBy
  • @arekzyla 请发布答案,以便我接受!

标签: c# linq sql-order-by reverse


【解决方案1】:

我被困在一个点上,我需要按升序对两列进行排序,就像 DateTime 一样,我也希望 EmpId 按升序排序

在 SQL 中:

SELECT *
FROM AttendanceLogs
ORDER BY EmpID, DateTime  ASC;

使用 LINQ:

 var empList = db.AttendanceLogs.OrderBy(x => x.EmpID).ThenBy(x => x.DateTime).ToList();

^这里的问题是ThenByperforms a subsequent ordering of the elements in a sequence in ascending order.

【讨论】:

    【解决方案2】:

    试试这个

    对于Linq中的升序顺序

    var empList = db.AttendanceLogs.OrderBy(x => x.DateTime).ToList();

    Linq 中的降序

    var empList = db.AttendanceLogs.OrderByDescending(x => x.DateTime).ToList();

    【讨论】:

      【解决方案3】:

      也许尝试使用OrderBy(x => x.DateTime) 而不是OrderByDescending(x => x.DateTime).Reverse()

      【讨论】:

        【解决方案4】:

        尝试使用

        var empList = db.AttendanceLogs.OrderBy(x => x.DateTime).ToList();
        

        Enumerable.OrderBy

        根据某个键对序列中的元素进行升序排序。

        【讨论】:

          猜你喜欢
          • 2018-05-03
          • 2019-07-23
          • 1970-01-01
          • 2013-10-16
          • 2020-10-05
          • 1970-01-01
          • 1970-01-01
          • 2016-10-18
          相关资源
          最近更新 更多