Двойная запись TDictionary (Delphi)
Я пытаюсь добавить следующие значения в
procedure TForm1.FormCreate(Sender: TObject);
var
md: TDictionary<string, string>;
s, v: string;
begin
md := TDictionary<string, string>.Create;
try
s := 'orange';
v := 'fruit';
md.Add(s, v);
s := 'orange ';
v := 'color';
md.Add(s, v);
ShowMessage(IntToStr(md.Count));
finally
md.Free;
end;
end;
Я знаю, что это дубликат, но если вы посмотрите на второй оранжевый, вы можете увидеть пробел в конце. Я думаю, что Delphi обрезает значение, но это не должно.
Кто-нибудь знает решение этой проблемы?
Спасибо,
1 ответ
Решение
Этот код показывает окно сообщения, содержащее число 2 во всех известных версиях Delphi. Это именно то, что ожидается, и TDictionary
код наверняка не урезает ваши ключи при сравнении на равенство.