如何排序List基于两个条件
本文关键字:User 于两个 条件 List 何排序 排序 | 更新日期: 2023-09-27 17:53:14
我有一个列表:
List<User> users = getUsers();
User对象有两个我想排序的属性:
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);