C#对List的元素按属性排序
C# 对 List 元素排序有几种方法。
方法一、使用Linq
List<User> sortedList = list.OrderBy(o=>o.ID).ToList();
如果按降序排序,可以使用OrderByDescending方法:
List<User> sortedList = list.OrderByDescending(o=>o.ID).ToList();
方法二、扩展IComparable接口
示例:
public class User : IComparable<User>
{
public string ID;
public string Name;
public int CompareTo(User other)
{
if (null == other)
return 1;
return string.Compare(this.Id, other.Id);
}
}
定义好类后,使用List排序如下:
List<User> myList = ...
myList.Sort();
如果是除了按Id排序,还有按其他属性排序的需求,可以实现IComparer接口:
public sealed class UserByNameComparer : IComparer<User>
{
public int Compare(User x, User y)
{
if (object.ReferenceEquals(x, y))
return 0;
else if (null == x)
return -1;
else if (null == y)
return 1;
else
return string.Compare(x.Name, y.Name);
}
}
使用:
List<User> myList = ...
myList.Sort(new UserByNameComparer());
// 直接 CompareTo
public class BoardPosInfoSort : IComparer<BoardPosInfo> // PickerIDPick 升序
{
public int Compare(BoardPosInfo x, BoardPosInfo y)
{
return x.PickerIDPick.CompareTo(y.PickerIDPick);
}
}
转载:https://devnote.pro/books/10000001801239/c/10000041331239
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2021-06-15 编码器信号输入的理解