2011-12-28 110 views
3

我有这个类:如何根据每个班级的价值排列班级列表?

public class MyClass 
{ 
    public MyClass() 
    { 

    } 

    public int value { get; set; } 
} 

,我这个类的一个列表中添加3:

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不是强制性的,所以如果你知道任何其他策略来订购这将是很好的。

回答

4

只要做到这一点,你添加的所有项目,以班级列表之后。 (此作品在Framwork 3.5SP1或更高版本)

classList = classList.OrderBy(cc => cc.value).ToList(); 
2
var orderedList = classList.Orderby(x =>x.Value) 
2

尝试使用LINQ,是这样的:

from cl in classList 
orderby cl.value 
select cl; 
3

你会打电话给

classList.Sort() 

,但你必须要实现这样的

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 
} 
IComparable接口之前