5
Delphi 2009'da artan bir Tamsayı ile TDictionary öğesini nasıl sıralayabilirim?TDictionary öğesini artan düzende Tamsayı'nın bir anahtarıyla sıralama
Delphi 2009'da artan bir Tamsayı ile TDictionary öğesini nasıl sıralayabilirim?TDictionary öğesini artan düzende Tamsayı'nın bir anahtarıyla sıralama
Sözlükler sıralanamaz ve sıralanamazlar (karma olduklarından başka). Anahtarları veya değerleri sıralamak isterseniz başka bir kap kullanmanız gerekir. Örneğin:
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.
Sözlükler sıralanır. Sıralanabilecek bir liste halinde okumalısınız. –