代码之家  ›  专栏  ›  技术社区  ›  user9630128

如何按升序LINQ对列表排序

  •  1
  • user9630128  · 技术社区  · 6 年前

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

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

    我尝试的是 Reverse();

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

    但这却引发了一个异常。

    已编辑:

    阿雷克兹拉的回答对我很有帮助,但我陷入了一个困境,我需要按升序对两列进行排序,就像按日期时间一样,我还需要按升序对EmpId进行排序

    4 回复  |  直到 6 年前
        1
  •  2
  •   DirtyBit    6 年前

    我陷入了一个困境,需要对两列都按升序排序,就像对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();
    

    ^这里的陷阱是 ThenBy 哪一个 performs a subsequent ordering of the elements in a sequence in ascending order.

        2
  •  2
  •   Vikash sah    6 年前

    试试这个

    对于 提升 Linq订单

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

    降序 Linq订单

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

        3
  •  0
  •   Jakub Kowalski    6 年前

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

        4
  •  0
  •   Fred    6 年前

    尝试使用

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

    Enumerable.OrderBy

    根据键按升序对序列的元素排序。