是否可以按linq中的列位置进行排序?

时间:2012-12-06 13:04:18

标签: linq

我是Linq的新手。我只是想知道如何使用c#表达式在Linq中按列位置进行排序。如果有可能请告诉我,或者不知道背后的原因是什么? 就像在Sql中一样

SELECT Title, FirstName, LastName
FROM Employees
ORDER BY 1,3

2 个答案:

答案 0 :(得分:3)

这在LINQ中是不可能的,在SQL中也是不好的做法。只需指定要订购的列/属性。

等效的LINQ查询是:

employees.Select(x => new { x.Title, x.FirstName, x.LastName })
         .OrderBy(x => x.Title)
         .ThenBy(x => x.LastName);

或者在查询语法中:

from e in employees
order by e.Title, e.LastName
select new { x.Title, x.FirstName, x.LastName };

答案 1 :(得分:0)

不要太确定你的意思,但如果你的意思是:

SELECT Title, FirstName, LastName FROM Employees ORDER BY Title, LastName

然后你会这样做之一:

var results = from e in context.Employees
              order by e.Title, e.Lastname
              select e;

var results = context.Employees.OrderBy(e => e.Title).ThenBy(e => e.LastName)

未来使用的良好参考: