如何在list中对数据排序

问题描述

structResPoint{publicstringname;publicdoubleX;publicdoubleY;}List<ResPoint>pt=newList<ResPoint>;pt.Add(newResPoint{"1",10,20})pt.Add(newResPoint{"2",50,12})。。。增加很多数据请问在pt里如何按照X的大小进行排序?最后得到排序后pt

解决方案

本帖最后由 mosangbike 于 2014-11-25 16:16:07 编辑
解决方案二:
可以用linq的orderby或者自定义排序(实现IComparable)
解决方案三:
楼上正解我来凑字数
解决方案四:
OrderBy1.简单形式这个例子Linq使用orderby按雇用日期对雇员进行排序:varq=fromeindb.Employeesorderbye.HireDateselecte;2.带条件形式注意:Where和orderby的顺序并不重要。而在T-SQL中,Where和orderby有严格的位置限制。varq=fromoindb.Orderswhereo.ShipCity=="London"orderbyo.Freightselecto;语句描述:使用where和orderby按运费进行排序。3.降序排序varq=frompindb.Productsorderbyp.UnitPricedescendingselectp;4.ThenBy语句描述:Linq使用orderby对客户进行排序:varq=fromcindb.Customersorderbyc.City,c.ContactNameselectc;5.ThenByDescending这两个扩展方式都是用在orderby/orderbyDescending之后的,第一个ThenBy/ThenByDescending扩展方法作为第二位排序依据,第二个ThenBy/ThenByDescending则作为第三位排序依据,以此类推varq=fromoindb.Orderswhereo.EmployeeID==1orderbyo.ShipCountry,o.Freightdescendingselecto;语句描述:Linq使用orderby先按发往国家再按运费从高到低的顺序对EmployeeID1的订单进行排序。6.带GroupBy形式varq=frompindb.Productsgrouppbyp.CategoryIDintogorderbyg.Keyselectnew{g.Key,MostExpensiveProducts=fromp2ingwherep2.UnitPrice==g.Max(p3=>p3.UnitPrice)selectp2};语句描述:Linq使用orderby、Max和GroupBy得出每种类别中单价最高的产品,并按CategoryID对这组产品进行排序。
解决方案五:
长姿势了引用3楼smthgdin的回复:

OrderBy1.简单形式这个例子Linq使用orderby按雇用日期对雇员进行排序:varq=fromeindb.Employeesorderbye.HireDateselecte;2.带条件形式注意:Where和orderby的顺序并不重要。而在T-SQL中,Where和orderby有严格的位置限制。varq=fromoindb.Orderswhereo.ShipCity=="London"orderbyo.Freightselecto;语句描述:使用where和orderby按运费进行排序。3.降序排序varq=frompindb.Productsorderbyp.UnitPricedescendingselectp;4.ThenBy语句描述:Linq使用orderby对客户进行排序:varq=fromcindb.Customersorderbyc.City,c.ContactNameselectc;5.ThenByDescending这两个扩展方式都是用在orderby/orderbyDescending之后的,第一个ThenBy/ThenByDescending扩展方法作为第二位排序依据,第二个ThenBy/ThenByDescending则作为第三位排序依据,以此类推varq=fromoindb.Orderswhereo.EmployeeID==1orderbyo.ShipCountry,o.Freightdescendingselecto;语句描述:Linq使用orderby先按发往国家再按运费从高到低的顺序对EmployeeID1的订单进行排序。6.带GroupBy形式varq=frompindb.Productsgrouppbyp.CategoryIDintogorderbyg.Keyselectnew{g.Key,MostExpensiveProducts=fromp2ingwherep2.UnitPrice==g.Max(p3=>p3.UnitPrice)selectp2};语句描述:Linq使用orderby、Max和GroupBy得出每种类别中单价最高的产品,并按CategoryID对这组产品进行排序。

引用3楼smthgdin的回复:

OrderBy1.简单形式这个例子Linq使用orderby按雇用日期对雇员进行排序:varq=fromeindb.Employeesorderbye.HireDateselecte;2.带条件形式注意:Where和orderby的顺序并不重要。而在T-SQL中,Where和orderby有严格的位置限制。varq=fromoindb.Orderswhereo.ShipCity=="London"orderbyo.Freightselecto;语句描述:使用where和orderby按运费进行排序。3.降序排序varq=frompindb.Productsorderbyp.UnitPricedescendingselectp;4.ThenBy语句描述:Linq使用orderby对客户进行排序:varq=fromcindb.Customersorderbyc.City,c.ContactNameselectc;5.ThenByDescending这两个扩展方式都是用在orderby/orderbyDescending之后的,第一个ThenBy/ThenByDescending扩展方法作为第二位排序依据,第二个ThenBy/ThenByDescending则作为第三位排序依据,以此类推varq=fromoindb.Orderswhereo.EmployeeID==1orderbyo.ShipCountry,o.Freightdescendingselecto;语句描述:Linq使用orderby先按发往国家再按运费从高到低的顺序对EmployeeID1的订单进行排序。6.带GroupBy形式varq=frompindb.Productsgrouppbyp.CategoryIDintogorderbyg.Keyselectnew{g.Key,MostExpensiveProducts=fromp2ingwherep2.UnitPrice==g.Max(p3=>p3.UnitPrice)selectp2};语句描述:Linq使用orderby、Max和GroupBy得出每种类别中单价最高的产品,并按CategoryID对这组产品进行排序。

引用3楼smthgdin的回复:

OrderBy1.简单形式这个例子Linq使用orderby按雇用日期对雇员进行排序:varq=fromeindb.Employeesorderbye.HireDateselecte;2.带条件形式注意:Where和orderby的顺序并不重要。而在T-SQL中,Where和orderby有严格的位置限制。varq=fromoindb.Orderswhereo.ShipCity=="London"orderbyo.Freightselecto;语句描述:使用where和orderby按运费进行排序。3.降序排序varq=frompindb.Productsorderbyp.UnitPricedescendingselectp;4.ThenBy语句描述:Linq使用orderby对客户进行排序:varq=fromcindb.Customersorderbyc.City,c.ContactNameselectc;5.ThenByDescending这两个扩展方式都是用在orderby/orderbyDescending之后的,第一个ThenBy/ThenByDescending扩展方法作为第二位排序依据,第二个ThenBy/ThenByDescending则作为第三位排序依据,以此类推varq=fromoindb.Orderswhereo.EmployeeID==1orderbyo.ShipCountry,o.Freightdescendingselecto;语句描述:Linq使用orderby先按发往国家再按运费从高到低的顺序对EmployeeID1的订单进行排序。6.带GroupBy形式varq=frompindb.Productsgrouppbyp.CategoryIDintogorderbyg.Keyselectnew{g.Key,MostExpensiveProducts=fromp2ingwherep2.UnitPrice==g.Max(p3=>p3.UnitPrice)selectp2};语句描述:Linq使用orderby、Max和GroupBy得出每种类别中单价最高的产品,并按CategoryID对这组产品进行排序。

解决方案六:
支持Linq的话直接Linq的orderby
解决方案七:
老一点的方法,类实现IComparable接口,然后在list.sort();
解决方案八:
List<ResPoint>pt=newList<ResPoint>;pt.Add(newResPoint{"1",10,20})pt.Add(newResPoint{"2",50,12})pt.Sort((x,y)=>{returnx>y?1:-1});

时间: 2024-11-04 11:32:47

如何在list中对数据排序的相关文章

在Excel中给数据排序的常用方法与技巧

在用Excel制作相关的数据表格时,我们可以利用其强大的排序功能,浏览.查询.统计相关的数字.下面,我们以图1所示的"员工基本情况登记表"为例,来全面体验一番Excel的排序功能. 一.快速排序 如果我们希望对员工资料按某列属性(如"工龄"由长到短)进行排列,可以这样操作:选中"工龄"列任意一个单元格(如I3),然后按一下"常用"工具栏上的"降序排序"按钮即可(参见图1). 小提示:①如果按"常用

关于order by中的数据排序

今天开发的一个同事找到我,说碰到一个比较奇怪的问题,有两个等价的查询类似下面的形式. select *from test where account_id=xxxxxx order by creation_dateselect *from test where account_id=xxxxxx  and entity_id=xxxxx order by creation_date 两个查询都会返回4条结果,但是第一个查询和第二个查询的结果排序结果不一致. 使用第一个查询的结果如下: -----

如何在Access中创建数据表

  1.打开你的access,然后在菜单栏上点击 创建 选项. 2.在创建选项中,点击表设计. 3.这样就来到了表设计器.我们在左边的这个字段名称这一栏输入字段的名称,在数据类型这一栏点击下列按钮,在下拉菜单中,选择 数字. 计算"> 4.同样的方法我们建立"姓名字段",并设置其数据类型为 文本. 5.等所有的字段都添加完毕以后,我们点击左上角的视图按钮. 6.在下拉菜单中,找到数据表视图,单击它. 7.弹出是否保存表的提示,我们点击是. 8.要求输入该数据表的名称,笔

python中字典数据排序几种方法

字典的排序 先来演示字典的排序函数sort()的使用:  代码如下 复制代码 dict = {"a":"apple","b":"banana","g":"grape","c":"oreage"} print dict #按照key进行排序.items可以用于字典的遍历,返回(key,value)的序列,lampda用于创建匿名函数,并返回计算结果,

html中table数据排序的js代码_javascript技巧

对了,注意那个innerText和innerHTML 复制代码 代码如下: function sortCells(event) { var obj = event.target; var count = 0; count是记录点击次数的,根据奇偶进行升序或降序 if(!obj.getAttribute("clickCount")){ obj.setAttribute("clickCount", 0); } else { count = parseInt(obj.ge

如何在JTable中实现数据的增删改查,有示例说明最好

问题描述 各位大侠,有人能详细介绍下如何用JTable实现数据的增删改查吗,小弟急求.我要没搞定,明年的咋天就是我的祭日了,悲剧中. 解决方案 解决方案二:看以下DefaultTableModel的API解决方案三:没搞过swing解决方案四:引用楼主tianxiawuzei的回复: 各位大侠,有人能详细介绍下如何用JTable实现数据的增删改查吗,小弟急求.我要没搞定,明年的咋天就是我的祭日了,悲剧中. 鬼啊!!!!解决方案五:试试喔

ASP.NET中实现DataGrid数据排序

asp.net|datagrid|排序|数据 Visual Studio .Net为编写WinForm程序(即:在Windows平台下运行的程序)所提供的DataGrid组件比起微软以往的各种开发环境中提供的DataGrid组件都要"高级"许多.其"高级"的地方就在于不需要再进行任何其他设置或编程,DataGrid就能够对其中的数据分别按照升.降序进行排列.这种"高级"功能给我们编程提供了许多方便.图01是在WinForm程序中的DataGrid

InfoPath开发实战(3):获取SQL Server中的数据

本节的内容: 如何在InfoPath中使用数据连接来从SQL Server数据库中获取数据 如何通过代码来修改数据连接中的SQL查询 在开始设计InfoPath表单之前,先准备一个数据库,InfoPath支持两种数据库连接: Microsoft Office Access数据库(.mdb文件或.accdb文件) Microsoft SQL Server数据库 需要注意的是,InfoPath虽然支持SQL Server Express数据库,但却不支持以文件的形式连接SQL Server Expr

InfoPath开发实战(2):获取XML文件中的数据

本节的内容: 如何在InfoPath中使用数据连接来从XML文件中获取数据 如何通过代码来修改数据连接中的XML文件路径 打开Visual Studio 2008,以"InfoPath 2007表单模板"为项目模板新建一个项目. 项目创建完后,就会看到一个空空如也的mainifest.xsf文件,这就是InfoPath表单的设计区域,我们可以使用"工具箱"和"版式"面板来设计表单. 我们先不急于设计表单,而是添加一个数据连接.为了让示例更加有趣,