我有C#类如下:
public class ClassInfo {
public string ClassName;
public int BlocksCovered;
public int BlocksNotCovered;
public ClassInfo() {}
public ClassInfo(string ClassName, int BlocksCovered, int BlocksNotCovered)
{
this.ClassName = ClassName;
this.BlocksCovered = BlocksCovered;
this.BlocksNotCovered = BlocksNotCovered;
}
}
我有ClassInfo()的C#List如下
List<ClassInfo> ClassInfoList;
如何根据BlocksCovered对ClassInfoList进行排序?
答案 0 :(得分:6)
这会返回由List<ClassInfo>
订购的BlocksCovered
:
var results = ClassInfoList.OrderBy( x=>x.BlocksCovered).ToList();
请注意,您应该真正使BlocksCovered
成为属性,现在您拥有公共字段。
答案 1 :(得分:6)
myList.Sort((x,y) => x.BlocksCovered.CompareTo(y.BlocksCovered)
答案 2 :(得分:1)
如果您引用List<T>
对象,请使用Sort()
提供的List<T>
方法,如下所示。
ClassInfoList.Sort((x, y) => x.BlocksCovered.CompareTo(y.BlocksCovered));
如果您使用OrderBy()
Linq扩展方法,您的列表将被视为枚举器,这意味着它将被冗余转换为List<T>
,已排序,然后作为需要转换的枚举器返回再次List<T>
。
答案 3 :(得分:0)
我会使用Linq,例如:
ClassInfoList.OrderBy(c => c.ClassName);