我有一份城市名单。
List<City> cities;
我想按人口排序。我想象的代码就像:
cities.Sort(x => x.population);
但这不起作用。我应该如何排序这个清单?
答案 0 :(得分:45)
使用Linq函数的OrderBy。见http://msdn.microsoft.com/en-us/library/bb534966.aspx
cities.OrderBy(x => x.population);
答案 1 :(得分:17)
使用此功能,这将有效。
List<cities> newList = cities.OrderBy(o=>o.population).ToList();
答案 2 :(得分:2)
作为另一种选择,如果您没有足够的幸运能够使用Linq,您可以使用IComparer或IComparable接口。
这是两个接口上的一篇很好的知识库文章: http://support.microsoft.com/kb/320727
答案 3 :(得分:2)
您可以在没有LINQ的情况下执行此操作。请参阅IComparable接口文档here
cities.Sort((x,y) => x.Population - y.Population)
或者您可以将此比较功能放在City类中,
public class City : IComparable<City>
{
public int Population {get;set;}
public int CompareTo(City other)
{
return Population - other.Population;
}
...
}
然后就可以了,
cities.Sort()
它将返回按人口排序的列表。