You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++Builder 6中使用TStringList创建键值对?

在C++Builder 6中用TStringList创建键值对的正确方法

你遇到的问题是因为C++Builder 6里的TStringList::Values属性不支持通过整数下标访问,它的参数是键名字符串,而非索引序号。你用Values[0]时,程序会把整数0转换成字符串"0",而列表里没有键为"0"的条目,所以返回空字符串。

正确的实现方式

有两种可靠的方法创建和访问键值对:

  1. 直接通过Values属性赋值
    这是最直观的方式,赋值时会自动添加新的键值对,若键已存在则更新对应的值:

    TStringList *StringList = new TStringList();
    StringList->Values["Sydney"] = "2000";
    StringList->Values["Beijing"] = "2008";
    
    // 取值时用键名访问
    AnsiString sydneyVal = StringList->Values["Sydney"]; // 得到"2000"
    
  2. 用Add方法添加格式正确的字符串,配合键名取值
    如果你坚持用Add方法添加"键=值"格式的字符串,记得用键名而非下标访问Values:

    TStringList *StringList = new TStringList();
    StringList->Add("Sydney=2000");
    
    // 正确取值方式
    AnsiString sydneyVal = StringList->Values["Sydney"]; // 得到"2000"
    // 而Names[0]可以正常获取键名"Sydney"
    AnsiString sydneyName = StringList->Names[0];
    

补充说明

C++Builder 6的TStringList中,Names属性是通过整数下标访问键名,但Values属性只能通过键名来对应取值。后续版本(如CB11)扩展了Values对整数下标的支持,但BCB6没有这个特性。

内容的提问来源于stack exchange,提问作者Mark Di Val

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:52:48