如何根据每个类的值来排序一个类列表?
本文关键字:一个 排序 列表 何根 | 更新日期: 2023-09-27 18:18:51
我有这样一个类:
public class MyClass
{
public MyClass()
{
}
public int value { get; set; }
}
和我把这类的三个人加到一个名单上:
MyClass class1 = new MyClass()
MyClass class2 = new MyClass()
MyClass class3 = new MyClass()
IList<MyClass> classList = new List<MyClass>().ToList();
classList.Add(class1);
classList.Add(class2);
classList.Add(class3);
现在,我想根据MyClass.value
的值对这个列表进行排序(升序)。如何在c#上实现呢?
IList不是强制性的,所以如果你知道其他的排序策略将会很好。
请在将所有项添加到classList后执行此操作。(此功能适用于框架3.5sp1或更高版本)
classList = classList.OrderBy(cc => cc.value).ToList();
使用LINQ和OrderBy
方法:
var sortedList = classList.OrderBy(i => i.value);
有对应的OrderByDescending
您将调用
classList.Sort()
但是在你实现IComparable接口之前
class MyClass: IComparable
{
public int value { get; set; }
#region IComparable Members
public int CompareTo(object obj)
{
MyClass e = (MyClass)obj;
int r;
r = this.value.CompareTo(e.value);
return r;
}
#endregion
}
var orderedList = classList.Orderby(x =>x.Value)
试试LINQ,比如:
from cl in classList
orderby cl.value
select cl;