首页 > 解决方案 > 从 StringList 中的值获取 id

问题描述

我有一个 2 行的 StringList

aOldPriceTerms[0] = 'FuelAddition=336643160'
aOldPriceTerms[1] = 'Freight=336643155'

所以它很好用

aOldPriceTerms.Values['Freight'] -> '336643155'

我想从列表中获得一个 ID 列表。

如此简单

'FuelAddition','Freight'

目前我使用此代码,其中 aOldPriceTerms 是实际的 StringList。

function GetList(aOldPriceTerms: TStringList): String;
var
  vOldTerm : string;
  vOldTermsList : TStringList;
begin
  vOldTermsList := TStringList.Create;
  try
    for i := aOldPriceTerms.Count - 1 downto 0 do
    begin
      vOldTerm := Copy(aOldPriceTerms[i], 1, (Pos('=', aOldPriceTerms[i])-1));
      vOldTermsList.Add(vOldTerm);
    end;

    Result := vOldTermsList.CommaText;
  finally
    FreeAndNil(vOldTermsList);
  end;
end;

我的问题是有更清洁的方法来获取 ids 吗?

标签: delphi

解决方案


示例来自Delphi Basics,但TStringList.Names也在Delphi 文档中进行了描述

  // Now display all name and age pair values
  for i := 0 to names.Count-1 do
  begin
    ShowMessage(names.Names[i]+' is '+names.ValueFromIndex[i]);
  end;

推荐阅读