我有这堂课:
public class MyClass
{
public MyClass()
{
}
public int value { get; set; }
}
我在List上添加了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不是强制性的,所以如果你知道任何其他的订购策略,这将是好的。
答案 0 :(得分:4)
将所有项添加到classList后,只需执行此操作。 (这适用于Framework 3.5sp1或更高版本)
classList = classList.OrderBy(cc => cc.value).ToList();
答案 1 :(得分:3)
答案 2 :(得分:3)
你会打电话给
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
}
答案 3 :(得分:2)
var orderedList = classList.Orderby(x =>x.Value)
答案 4 :(得分:2)
尝试使用LINQ,例如:
from cl in classList
orderby cl.value
select cl;