我应该使用什么结构?德尔福10.3

时间:2020-04-07 13:10:01

标签: delphi

想要处理并从元组的函数数组返回,例如:

[ [1, "hello", 11], [2, "world", 66] ][ ["hello", 1, 4, 10, "world"], ["its", 1, 2, 5, "me"] ]或其他情况

内部列表的长度可以变化,并且等于传递给函数的数字。

是否有任何集合或集合的组合来处理?

1 个答案:

答案 0 :(得分:1)

如果外部“列表”的每个元素始终是一个包含一个整数,一个字符串和另一个整数的数据结构,则应为此结构创建一个记录类型:

type
  TCarData = record
    Size: Integer;
    Model: string;
    Year: Integer;
  end;

然后,您可以使用dynamic array个记录TArray<TCarData>,也可以使用generic listTList<TCarData>

如果您需要做一些事情,例如一次向“列表”中添加一辆汽车,则一定要使用通用的TList<TCarData>方法(因为您应该避免一次向动态对象中添加单个项目)数组)。否则,动态数组方法将很诱人,因为这样编译器将为您管理“列表”的生存期-您无需手动创建和释放“列表”。

另一方面,如果内部结构不是这样固定的,则可以让内部对象是VariantTArray<Variant>的数组。因此,整个“列表”的类型为TArray<TArray<Variant>>

然后,外部“列表”中的每个元素都是任意长度的值数组,该值可以是任何简单的非指针类型:整数,浮点数,字符串等。

相关问题