//类似的哈希表操作法  List.Add('aaa=111');
  List.Add('bbb=222');
  List.Add('ccc=333');  ShowMessage(List.Names[1]);  //bbb
  ShowMessage(List.ValueFromIndex[1]);  //222
  ShowMessage(List.Values['bbb']);  //222现在我们想用222找到bbb怎么做呢
我本来想着是List.Names[List.IndexOf()],但List.IndexOf()是这里必须要输入 bbb=222 才可以

解决方案 »

  1.   

    delphi有THashedStringListuses
    IniFiles;
      

  2.   

    它的问题的关键不是在于StringList还是HashedStringList...可以考虑再增加一个stringlist,把value和name反过来记录吧,是麻烦点。
      

  3.   

    自己写个类感觉也太麻烦了,这个用的比较少
    如果再加个stringlist也是麻烦决定做了过循环for i:=0 to List.count-1 do
       if List.ValueFromIndex[i]='222' then
          showmessage(List.Names[i]);  //bbb就是感觉效率太低了点
      

  4.   

    你可以把'222'等作为一个object添加到列表,然后访问IndexOfObject
      

  5.   


    楼上的思路
    slist.AddObject('3',tempnode)  ;
    tempnode := slist.Objects[slist.IndexOf('3')] as TTreeNode)
      
      

  6.   

    for i:=0 to List.count-1 do 
      if Pos('222', List.Names[i]) > 0 then 
          showmessage(Copy(List.Names[i], 1, 3));  //bbb 
      

  7.   


    这个应该有错误的吧
    如果有 List.Add('bbbb=2222'); 
    不也可以显示  bbbb 了吗
      

  8.   

    for I:= 0 to LIST.COUNT -1 do
    if LIST.ValueFromIndex[1]) = '222' then
    begin
      ShowMessage(List.Names[I]);  
      BREAK;
    END;