Linq - 先进.OrderBy

iLe*_*ing 7 c# linq c#-4.0

Foo().OrderBy(x=> x.Name)
Run Code Online (Sandbox Code Playgroud)

如果我希望以这种方式对集合进行排序,但是正好一个具有Id ==(例如314)的元素应始终位于开头,而不管其名称如何.

jis*_*shi 21

您可以在两轮中对其进行排序:

Foo().OrderBy(x => x.Id == 314 ? 0 : 1).ThenBy(x => x.Name)
Run Code Online (Sandbox Code Playgroud)

也许这更简单(假设boolean false在布尔值为true之前运行)

Foo().OrderBy(x => x.Id != 314).ThenBy(x => x.Name)
Run Code Online (Sandbox Code Playgroud)