首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按属性的值对对象列表进行排序

按属性的值对对象列表进行排序
EN

Stack Overflow用户
提问于 2013-05-18 10:34:26
回答 4查看 80K关注 0票数 31

我有一张城市的清单。

代码语言:javascript
运行
复制
 List<City> cities;

我想按人口对列表进行排序。我想象的代码是这样的:

代码语言:javascript
运行
复制
 cities.Sort(x => x.population);

但这不管用。我应该如何对此列表进行排序?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-18 10:39:27

使用Linq函数的OrderBy。请参阅http://msdn.microsoft.com/en-us/library/bb534966.aspx

代码语言:javascript
运行
复制
cities.OrderBy(x => x.population);
票数 56
EN

Stack Overflow用户

发布于 2013-05-18 10:43:52

使用这个,这将会起作用。

代码语言:javascript
运行
复制
List<cities> newList = cities.OrderBy(o=>o.population).ToList();
票数 19
EN

Stack Overflow用户

发布于 2018-05-31 16:19:23

你可以在没有LINQ的情况下做到这一点。请参见IComparable界面文档here

代码语言:javascript
运行
复制
cities.Sort((x,y) => x.Population - y.Population)

或者您可以将此比较函数放在City类中,

代码语言:javascript
运行
复制
public class City : IComparable<City> 
{
    public int Population {get;set;}

    public int CompareTo(City other)
    {
        return Population - other.Population;
    }
 ...
}

然后你就可以这样做

代码语言:javascript
运行
复制
cities.Sort()

它将返回按人口排序的列表。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16620135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档