【发布时间】:2011-12-04 15:07:27
【问题描述】:
如果我有一个包含更多字段的泛型列表,例如:
PMyList = record
Field1, Field2, ... FieldN : Integer;
end;
TMyList = List<PMyList>;
要使用标准选择运行时的列表(例如:field2 然后 field2,或者:field3 然后 field1 然后 field2 等)有一些解决方案,或者我需要为我想要的所有可能的顺序组合做一个比较构造?
我的想法是,如果记录是 N 个字段,我想到了一个这样定义的数组:
MyArray = array [1..n] of Integer;
并为确定 sord 标准的数组元素分配一个渐进值,例如,如果 MyArray 为:
MyArray = (5, 1, 3, 4, 2)
意味着我的列表需要首先对 field5 进行排序,然后是 field1,然后是 field3,然后是 field4,然后是 field2。 那么我的问题是:我可以只为我的列表使用一个构造比较吗?
非常感谢您的帮助。
【问题讨论】:
-
如果你有一个通用列表,告诉它使用你自己的比较函数/方法。查看:delphi.about.com/od/delphitips2009/qt/sort-generic.htm 和 beensoft.blogspot.com/2008/09/simple-generic-list-tlist.html 以获取有关如何执行此操作的示例。剩下要解决的唯一一件事是如何让这个函数知道定义排序顺序的数组。没时间给你看,所以评论而不是答案。
标签: delphi delphi-xe2