如: aa: TDictionary<integer,integer>  初始为 aa.add(1,11)
         aa.add(2,22)
         aa.add(3,33)  遍历输出时
   for I in aa.Keys do
   begin
     memo1.lines.add(IntToStr(aa[I]));
   end   得到的结果并不是依次的  11,22,33,而是不确定的,比如 22,11,33   请问该如何根据 add的顺序 依次输出,或者有什么排序方法不???

解决方案 »

  1.   

    我自己通过一个 arr: tarray<integer> 存放dictionary的key, 然后通过aa[arr[I]] 输出可以解决,
    不知道是不是合理的,有没有更优的
      

  2.   

    var
      aa: TDictionary<integer,integer>;
      arr : TArray<Integer>;
      n : integer;
    begin
      aa := TDictionary<integer,integer>.Create;
      try
        aa.add(1,11);
        aa.add(2,22);
        aa.add(3,33);    arr := aa.Keys.ToArray;
        TArray.Sort<Integer>(arr);    for n in arr do
          ShowMessage(IntToStr(aa[n]));
      finally
        aa.Free;
      end;