1

次の値を追加しようとしています

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;

これが重複していることはわかっていますが、2 番目のオレンジ色を見ると、最後にスペースがあることがわかります。Delphiは値をトリムすると思いますが、そうすべきではありません。

誰もこの問題の解決策を知っていますか?

ありがとう、

4

1 に答える 1

4

このコードは、Delphi のすべての既知のバージョンで番号 2 を含むメッセージ ボックスを表示します。これはまさに予想どおりであり、TDictionaryコードは、等しいかどうかを比較するときにキーをトリミングしません。

于 2012-09-07T14:20:45.590 に答える