首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按整数键升序排序TDictionary

按整数键升序排序TDictionary
EN

Stack Overflow用户
提问于 2015-07-07 06:40:02
回答 1查看 10.3K关注 0票数 9

如何在Delphi2009中按整数键升序对TDictionary进行排序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-07 07:29:30

RTL TDictionaries不会排序,也不能排序(除了按散列排序,它们是按散列排序的)。如果您希望对键或值进行排序,则需要使用另一个容器。例如:

代码语言:javascript
复制
program Project1;

{$APPTYPE CONSOLE}

uses
  Generics.Collections, Generics.Defaults, SysUtils;

var
  LDict : TDictionary<integer, string>;
  i, j : integer;
  LArray : TArray<integer>;
begin
  LDict := TDictionary<integer, string>.Create;
  try
    // Generate some values
    Randomize;
    for i := 0 to 20 do begin
      j := Random(1000);
      LDict.AddOrSetValue(j, Format('The Value : %d', [j]));
    end;
    WriteLn('Disorder...');
    for i in LDict.Keys do
      WriteLn(LDict.Items[i]);
    // Sort
    LArray := LDict.Keys.ToArray;
    TArray.Sort<integer>(LArray);
    WriteLn('Order...');
    for i in LArray do
      WriteLn(LDict.Items[i]);
  finally
    LDict.Free;
  end;
  Readln;
end.
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31256891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档