0

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

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

2 回答 2

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 };
于 2012-12-06T13:09:01.477 回答
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)

未来使用的一个很好的参考:

于 2012-12-06T13:14:21.207 回答