Двойная запись 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 код наверняка не урезает ваши ключи при сравнении на равенство.

Другие вопросы по тегам