标题: TList排序问题 浏览:165 加入我的收藏
楼主: 我有一些数据,以结构形式保存到TList中
数据例:姓名 学分张三 45 李四 30 黄五 23 ....
如果黄五的学分增加了20分后,变成43,
这时,怎么更新TLIST中黄五数据的位置,
排序从学分高到低排 张三 45 黄五 43 李四 30
----------------------------------------------
delphi众人拾柴火焰高!支持盒子~~~~~~~~~~ 作者: lotsbug (lotsbug) ▲▲▲△△ -
普通会员 2010-8-28 12:18:01 1楼:
for i := 0 to List.Count - 1 do begin if AnsiSameText('黄五', StuRec(List[i]).Name) then begin StuRec(List[i]).score := StuRec(List[i]).score + 20; break; end; end;
---------------------------------------------- -
作者: lotsbug (lotsbug) ▲▲▲△△ - 普通会员 2010-8-28 12:37:58
2楼:
function compareScore(Item1, Item2: Pointer): Integer; begin Result := StuRec(Item2).score - StuRec(Item1).score; end; List.Sort(compareScore);
---------------------------------------------- -
作者: q34625474 (q34625474) ▲▲▲△△ - 盒子活跃会员 2010-8-28 13:23:47
3楼: 换到TStringList也是可以的吧?
----------------------------------------------
delphi众人拾柴火焰高!支持盒子~~~~~~~~~~
作者: ivvn (奔腾的心) ▲▲△△△ - 注册会员 2010-8-28 14:59:46
4楼: List.Sort很快的,看2楼
---------------------------------------------- -
作者: huangjacky (TheFiend) ▲▲△△△ - 普通会员 2010-8-29 9:32:39
5楼: 快速排序算法
----------------------------------------------
个人博客:http://huangjacky.cnBlogs.com Delphi技术讨论