У меня есть TDictionary, объявленный примерно так TDictionary<String,Integer>
, Теперь я хочу получить максимум значения, хранящегося в TDictionary.я могу сделать это, перебирая TDictionary
и сравнивая значения, но мне интересно, существует ли лучший способ сделать это?exist any function or maybe the dictionary can be sorted by the values to retrieve the max value stored?
это то, что я делаю сейчас
var
MyDict : TDictionary<String,Integer>;
MaxValue, i : Integer;
begin
MyDict:=TDictionary<String,Integer>.Create;
try
MyDict.Add('this',1);
MyDict.Add('is',7);
MyDict.Add('a',899);
MyDict.Add('sample',1000);
MyDict.Add('finding',12);
MyDict.Add('the',94);
MyDict.Add('max',569);
MyDict.Add('value',991);
MaxValue:=MyDict.ToArray[0].Value;
for i in MyDict.Values do
if i>MaxValue then MaxValue:=i;
ShowMessage(Format('The max value is %d',[MaxValue]));
finally
MyDict.Free;
end;
end;