多个Orderby和Sort

时间:2012-07-09 14:54:14

标签: c# linq lambda

我有2个班级:

 Employee
 EmployeeDetails

我希望有一个列表,首先订购Employee然后对其进行排序,然后按EmployeeDetails排序,然后对其进行排序。

我在考虑这样的事情:

var result = _db.Employee
              .OrderBy( e => e.EmpName )
              .Sort('DepartmentId') // using the diff property
              .ThenBy( ed => ed.EmpAddress )
              .Sort('PostCode'); // using the diff property

我需要先从Employee中按EmpName进行排序,然后在我希望按EmpAddress排序的结果集之后对其进行排序,然后对其进行排序,然后返回结果集。

这甚至可能吗?可以在不使用Lambdas的情况下完成吗?是其他方法吗?

3 个答案:

答案 0 :(得分:5)

以下代码是您要找的吗?

var result = _db.Employee
                .OrderBy(e => e.EmpName)
                .ThenBy(e => e.DeptartmentId)
                .ThenBy(e => e.EmpAddresss)
                .ThenBy(e => e.PostCode);

答案 1 :(得分:1)

您正在寻找:

var result = _db.Employee
              .OrderBy( e => e.EmpName )  //OrderBy and SortBy empname  Ascending
              .ThenBy( ed => ed.EmpAddress ); //orderby address ascending

答案 2 :(得分:1)

如果您的Employee课程的EmployeeDetails属性为EmpAddress,则可以执行以下操作:

var result = _db.Employee
          .OrderBy( e => e.EmpName )
          .ThenBy( e => e.EmployeeDetails.EmpAddress );