2011-12-28 106 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接口之前