unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Generics.Collections; procedure TForm1.Button1Click(Sender: TObject); var Dictionary: TDictionary<string,Integer>; b: Boolean; T: Integer; begin Dictionary := TDictionary<string,Integer>.Create(); {添加} Dictionary.Add('n1', 111); Dictionary.Add('n2', 222); Dictionary.Add('n3', 333); {判断指定的 Key 是否存在} b := Dictionary.ContainsKey('n1'); ShowMessage(BoolToStr(b, True)); {True} b := Dictionary.ContainsKey('n4'); ShowMessage(BoolToStr(b, True)); {False} {判断指定的 Value 是否存在} b := Dictionary.ContainsValue(111); ShowMessage(BoolToStr(b, True)); {True} b := Dictionary.ContainsValue(999); ShowMessage(BoolToStr(b, True)); {False} {使用 AddOrSetValue 时, 如果 Key 存在则替换值; 此时如果用 Add 将发生异常} Dictionary.AddOrSetValue('n1', 123); ShowMessage(IntToStr(Dictionary['n1'])); {123} {使用 AddOrSetValue 时, 如果 Key 不存在则同 Add} Dictionary.AddOrSetValue('n4', 444); ShowMessage(IntToStr(Dictionary['n4'])); {444} {尝试取值} if Dictionary.TryGetValue('n2', T) then ShowMessage(IntToStr(T)); {222} Dictionary.Free; end; end.