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.