c# - Linq - 高级 .OrderBy

标签 c# linq c#-4.0

Foo().OrderBy(x=> x.Name)

如果我希望集合以这种方式排序,但只有一个 Id ==(假设为 314)的元素应该始终位于开头,而不管其名称如何。

最佳答案

你可以分两轮对它进行排序:

Foo().OrderBy(x => x.Id == 314 ? 0 : 1).ThenBy(x => x.Name)

也许这更简单(假设 boolean false 在 boolean true 之前运动)

Foo().OrderBy(x => x.Id != 314).ThenBy(x => x.Name)

关于c# - Linq - 高级 .OrderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446012/

相关文章:

c# - Windows 窗体图片框不能可靠地刷新

c# - 在 where 子句中构建动态 linq 查询

asp.net-mvc - ASP.NET MVC3,为什么即使在强类型 View 中下拉列表也依赖viewbag

javascript - 如何对 HTML 特殊字符进行编码和解码以获取实体名称

c# - 如何从当前月份选择当前日期

c# - 如何在 Windows Phone 7 中使用图像创建无限轮播效果

c# - 有没有办法从 C# CultureInfo 获取标志图像?

c# - ASP.NET Core 2.0 - 动态定义文档模型

c# - 在实体类中访问 LINQ-2-SQL DataContext

.net - 并行 linq 中的 let 子句是否强制并行评估?