如何根据每个类的值来排序一个类列表?

本文关键字:一个 排序 列表 何根 | 更新日期: 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;