您的位置:首页 > 产品设计 > UI/UE

详测 Generics Collections TDictionary(2): ContainsKey、ContainsValue、AddOrSetValue、TryGetValue

2009-10-11 17:13 537 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐