本文主要是介绍对tlist中的结构进行多项排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文章来源于一个网友的提问如下:
我有一些数据,保存在tlist中,每项是个结构,如何在对一项排序的基础上,继续排序
排序前
张三 男 25
王婆 女 24
李四 男 32
王婆2 女 27
王二 男 28
排序以后
张三 男 25
王二 男 28
李四 男 32
王婆 女 24
王婆2 女 27
现在整理一下,从新提出来,希望给初学者一点帮助,通过分析
既然是要排序,那么要排的东西应该可以转换为字符串,既然可以转换为字符串,那么我们就可以通过将所有要排的字段全部转换为字符串之后合并为一个字符串,然后比较这个合并后的字符串进行排序则可 ,所以我们可以定义一个函数如下:
procedure Sort(List: TList;isArc: boolean); {isArc指定是升序还是降序} var i,j: integer; people,People2,temp: pPeoPle; tempstr1,tempstr2: string; begin for i := 0 to List.Count - 1 do begin for j := i + 1 to List.Count - 1 do begin People := List.Items[i]; tempstr1 := people^.Name + ' ' + people^.Sex + ' ' + inttostr(people^.Age); people2 := List.Items[j]; tempstr2 := people2^.Name + ' '+ people2^.Sex |
这篇关于对tlist中的结构进行多项排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!