Delphi多索引泛型列表

4

我正在寻找一个TList的后代类,可以让我添加一个或多个索引,并且可以通过这些索引进行搜索和查看。

30分钟的谷歌搜索没有让我找到合适的方案。

这肯定是之前就有人需要过了。想象一下,当您拥有一个基于内存索引的集合时,又需要以不同的顺序显示它,这种情况肯定会发生多次吧?

谢谢,

AJ


1
你看过delphi-coll吗?它有很多不同排序算法的通用列表类型。 - LU RD
4个回答

7

7
如果您正在寻找Delphi中Multimap的通用实现,LU RD在上面的评论中指出了正确的方向delphi-coll
命名空间Collections.MultiMaps提供了一堆类:
  • TDistinctMultiMap:通用的多重映射集合。
  • TDoubleSortedDistinctMultiMap:通用的多重排序映射集合。
  • TDoubleSortedMultiMap:通用的多重排序映射集合。
  • TMultiMap:通用的多重映射集合。
  • TObjectDistinctMultiMap:专为存储对象而设计的通用多重映射集合。
  • TObjectDoubleSortedDistinctMultiMap:专为存储对象而设计的通用多重排序映射集合。
  • TObjectDoubleSortedMultiMap:专为存储对象而设计的通用多重排序映射集合。
  • TObjectMultiMap:专为存储对象而设计的通用多重映射集合。
  • TObjectSortedDistinctMultiMap:专为存储对象而设计的通用独特多重映射集合。
  • TObjectSortedMultiMap:专为存储对象而设计的通用多重映射集合。
  • TSortedDistinctMultiMap:通用的独特多重映射集合。
  • TSortedMultiMap:通用的多重映射集合。

1
看起来代码库已经迁移到这个地址:https://github.com/ghquant/delphi-coll - Eduardo Elias
一个更加现代化的代码仓库:https://github.com/delphidabbler/delphi-coll-xe - Delphi Coder

0

你可以使用已排序的TStringList作为索引。虽然如果你的索引被封装到主列表对象中会很好,但这并不是让你停下来的理由。

创建一个新的TStringList,并将对象指针指向你需要的任何内容。


-1

我不确定Delphi是否支持多个索引列表...也许你可以尝试使用TMS TColumnListBox?


4
听起来像是一种视觉控制。 - David Heffernan
4
@DavidHeffernan 这不仅是听起来像,它走起路来也像,嘎嘎叫声也一样,实际上就是…… - Marjan Venema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接