我有一个清单:
List<User> users = getUsers();
User 对象有 2 个我想排序的属性:
IsActive
Name
排序首先按 IsActive 排序,然后按名称排序。
因此,活动用户将位于列表顶部,按名称排序。然后将列出所有非活动用户(按字母顺序排序)。
这是可能的还是我必须分解列表然后合并它们?
此列表中的项目少于 100 个,因此性能并不是真正的问题。
只需使用OrderBy
和ThenBy
。感谢 Tim Schmelter 的发言。如果您使用OrderBy
,您将获得IsActive == false
列表顶部的用户。
var users = getUsers().
OrderByDescending(u => u.IsActive).
ThenBy(u => u.Name).
ToList();
请记住添加到您的using
指令中:
using System.Linq;
var result = users.OrderByDescending(z => z.IsActive).ThenBy(z => z.Name);