关于delphi:需要一个类似于TStringList的name = value类,但value部分是变体

 2021-04-27 

Need a name=value class similar to TStringList but the value part is variant

我需要一个类似于TStringList的类,可以管理名称


您尚未提供要用于的Delphi版本,但是从Delphi 2009开始,您可以使用TDictionary<string, Variant>


您可以从TStringList派生并使用Objects属性来保存变量的package器对象。


如果您具有Delphi 2009或2010,则可以在DeHL中使用TStringList<T>类创建TStringList<Variant>。 (您也可以使用TDictionary,但是TStringList具有许多您可能不想丢失的额外功能。)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
PVariantRec = ^TVariantRec;
TVariantRec = record
  Value : Variant;
end;

var
  lItem : PVariantRec;
  lMyStringList : TStringList;

lMyStringList := TStringList.Create;
lMyStringList.Sorted := true;
lMyStringList.OwnObjects := false;

//add
New(lItem);
lItem.Value := 'zzz';
lMyStringList.Add('name', TObject(lItem));

//remove
lItem := PVariantRec( lMyStringList.Objects[0] );
Dispose(lItem);
lMyStringList.Delete(0);