我有下一个班级和这个班级的集合.我如何通过asc对Perimeter()进行排序?
public class Circle
{
private double _r;
public Double Radius
{
get { return _r; }
set { _r = value; }
}
public double Perimeter ()
{
return 2*Math.PI*Radius;
}
}
...
var lst = new List<Circle>();
Run Code Online (Sandbox Code Playgroud)
lst = lst.OrderBy(x => x.Perimeter()).ToList()应该诀窍.还有一种OrderByDesc方法可供选择.
当然你也可以像Rob4md那样使用LINQ查询语法,但请记住,所有LINQ查询都返回一个IEnumerable并且是懒惰地执行的.
你应该使用一个急切的操作,ToList()或者ToArray()在它有意义的时候立即执行它们,因为你可能会多次执行枚举.
您可以查看MSDN上的101 LINQ Samples页面.关于如何使用LINQ有许多示例,OrderBy也被涵盖.