Difference between revisions of "User:Nhollm"
From Free Pascal wiki
Jump to navigationJump to searchm |
|||
Line 26: | Line 26: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ==Subcategory== | |
Hello | Hello | ||
− | |||
− | |||
<syntaxhighlight lang="pascal"> | <syntaxhighlight lang="pascal"> | ||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===Add=== |
+ | Add Element or update its current value (key, value) | ||
<syntaxhighlight lang="pascal"> | <syntaxhighlight lang="pascal"> | ||
− | + | MyDictionary.AddOrSetValue('Key1', 'Value1'); | |
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Remove=== | ||
+ | <syntaxhighlight lang="pascal"> | ||
+ | MyDictionary.Remove('Key2'); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Clear=== | ||
+ | Clear the entire dictionary | ||
+ | <syntaxhighlight lang="pascal"> | ||
+ | MyDictionary.Clear; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==Loops== | ||
+ | <syntaxhighlight lang="pascal"> | ||
+ | //Loop Keys | ||
+ | for KeyString in MyDictionary.Keys do | ||
+ | writeln('Found key:' + KeyString); | ||
+ | |||
+ | |||
+ | //Loop Values | ||
+ | for TestClass in MyDictionary.Values do | ||
+ | writeln('Found Value:' + TestClass.Name); | ||
+ | |||
+ | |||
+ | //Loop Key-Value-Pairs | ||
+ | for KeyValuePair in MyDictionary do | ||
+ | writeln('Found a Pair: Key:' + KeyValuePair.Key + ' Value:' + KeyValuePair.Value.Name); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==Check If Key/Value Exists== | ||
+ | |||
+ | <syntaxhighlight lang="pascal"> | ||
+ | //Check if Key exists | ||
+ | if MyDictionary.ContainsKey('Key1') then | ||
+ | WriteLn('key exists') | ||
+ | else | ||
+ | WriteLn('key not found'); | ||
+ | |||
+ | |||
+ | //Check if Value exists | ||
+ | if MyDictionary.ContainsValue("Searched value") then | ||
+ | writeln('value exists') | ||
+ | else | ||
+ | writeln('value not found'); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
==Source Code== | ==Source Code== |
Revision as of 00:35, 13 May 2023
Basic syntax
{$mode objfpc}
program Example;
uses
Generics.Collections; //import the generics-library of the RTL
type
TStringStringDictionary = specialize TDictionary<string, string>; //specialize a new dictionary and set the desired data-type of key and value
var
MyDictionary : TStringStringDictionary;
begin
MyDictionary := TStringStringDictionary.Create;
try
//do stuff with your dictionary..
finally
MyDictionary.Free;
end;
end.
Subcategory
Hello
Add
Add Element or update its current value (key, value)
MyDictionary.AddOrSetValue('Key1', 'Value1');
Remove
MyDictionary.Remove('Key2');
Clear
Clear the entire dictionary
MyDictionary.Clear;
Loops
//Loop Keys
for KeyString in MyDictionary.Keys do
writeln('Found key:' + KeyString);
//Loop Values
for TestClass in MyDictionary.Values do
writeln('Found Value:' + TestClass.Name);
//Loop Key-Value-Pairs
for KeyValuePair in MyDictionary do
writeln('Found a Pair: Key:' + KeyValuePair.Key + ' Value:' + KeyValuePair.Value.Name);
Check If Key/Value Exists
//Check if Key exists
if MyDictionary.ContainsKey('Key1') then
WriteLn('key exists')
else
WriteLn('key not found');
//Check if Value exists
if MyDictionary.ContainsValue("Searched value") then
writeln('value exists')
else
writeln('value not found');
Source Code
{$mode objfpc}
program Example;
uses
Generics.Collections //import the generics-library of the RTL
type
TStringStringDictionary = specialize TDictionary<string, string>; //specialize a new dictionary and set the data-type of key and value
var
MyDictionary : TStringStringDictionary;
TestClass : TmyCoolClass;
//
KeyString: string;
KeyValuePair : TStringStringDictionary.TDictionaryPair;
SearchedValue : string;
begin
//create the dictionary
MyDictionary := TStringStringDictionary.Create;
//Add Element or update its value to new (key, value)
MyDictionary.AddOrSetValue('Key1', 'Value1');
//Remove Element
MyDictionary.AddOrSetValue('Key2', 'Another Value');
MyDictionary.Remove('Key2');
//Clear entire dictionary
MyDictionary.Clear;
// Total number of Items in dictionary (count)
writeln('Items in Dictionary: ' + IntToStr(MyDictionary.Count));
//Get Value by Key
writeln(MyDictionary.Items['Key1'].Name); //If the provided key does not exist, this will throw a Error :'Dictionary Key does not Exist'
//----------------------Trying------------------
//TryAdd returns True if added successfully, False otherwise
writeln('TryAdd: ' + BoolToStr(MyDictionary.TryAdd('Key2',TestClass ),'True', 'False'));
//'TryGetValue'takes two Arguments ->(key, value) and returns a boolean.
//If found, it returns true and the provided 'value' variable becomes the value of the searched KeyValuePair
//if not found,the function returns False and the provided 'value'-variable is nil
writeln(BoolToStr(MyDictionary.TryGetValue('Key', SearchedValue)));
if MyDictionary.TryGetValue('Key', SearchedValue) then
writeln('Key found. Its Value is ' + SearchedValue.Name )
else
if SearchedValue = Nil then
writeln('the provided Value is Nil now');
//----------------------Loop through the Dictionary------------------
//Loop Keys
for KeyString in MyDictionary.Keys do
writeln('Found key:' + KeyString);
//Loop Values
for TestClass in MyDictionary.Values do
writeln('Found Value:' + TestClass.Name);
//Loop Key-Value-Pairs
for KeyValuePair in MyDictionary do
writeln('Found a Pair: Key:' + KeyValuePair.Key + ' Value:' + KeyValuePair.Value.Name);
//----------------------Check if.. exists in whole Dictionary------------------
//Check if Key exists
if MyDictionary.ContainsKey('Key1') then
writeln('key exists')
else
writeln('key not found');
//Check if Value exists
if MyDictionary.ContainsValue(TestClass) then
writeln('value exists')
else
writeln('value not found');
readln() //for Windows-console-users
end.