Difference between revisions of "Dictionary class"

From Catglobe Wiki
Jump to: navigation, search
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=== '''Dictionary : The dictionary object'''  ===
+
{{CGscriptClass_Template
 +
|Name=<nowiki>Dictionary</nowiki>
 +
|Description=<nowiki>The dictionary object</nowiki>
 +
|InheritsFrom=object|Constructors=
 +
{{CGscriptConstructors_Template|Description=<nowiki>Create a new dictionary with non-argument.</nowiki>}}
 +
{{CGscriptConstructors_Template|Parameters={{CGscriptParameters_Template|Type=params AnyType|Name=params AnyType|Description=}}
 +
|Description=<nowiki>Create new dictionary with the specified key-value pairs.</nowiki>}}
 +
{{CGscriptConstructors_Template|Parameters=
 +
{{CGscriptParameters_Template|Type=array|Name=<nowiki>keys</nowiki>|Description=<nowiki>keys arrayConstant</nowiki>|Comma=,}}{{CGscriptParameters_Template|Type=array|Name=<nowiki>values</nowiki>|Description=<nowiki>values arrayConstant</nowiki>}}
 +
|Description=<nowiki>Create new dictionary with the specified keys and values.</nowiki>}}
 +
|Methods=
 +
{{CGscriptMethods_Template|ReturnType=bool|Name=<nowiki>Add</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>Add with specific key</nowiki>|Comma=,}}{{CGscriptParameters_Template|Type=object|Name=<nowiki>value</nowiki>|Description=<nowiki>Add with specific value</nowiki>}}
 +
|Description=<nowiki>Adds the specified key and value to the dictionary. Return false if there is an item with the same key has already been added.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=bool|Name=<nowiki>Add</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>Add with specific key</nowiki>|Comma=,}}{{CGscriptParameters_Template|Type=object|Name=<nowiki>value</nowiki>|Description=<nowiki>Add with specific value</nowiki>}}
 +
|Description=<nowiki>Adds the specified key and value to the dictionary.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>Add</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=Dictionary|Name=<nowiki>src</nowiki>|Description=<nowiki>Source of keys and values to add</nowiki>}}
 +
|Description=<nowiki>Adds the all keys and values from src to current.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>Clear</nowiki>|Description=<nowiki>Remove all keys and values from the dictionary.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=bool|Name=<nowiki>ContainsKey</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>Check with specific key</nowiki>}}
 +
|Description=<nowiki>Determines whether the dictionary contains the specified key.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=bool|Name=<nowiki>ContainsKey</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>Check with specific key</nowiki>}}
 +
|Description=<nowiki>Determines whether the dictionary contains the specified key.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=bool|Name=<nowiki>ContainsValue</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=object|Name=<nowiki>value</nowiki>|Description=<nowiki>Add with specific value</nowiki>}}
 +
|Description=<nowiki>Determines whether the dictionary contains the specified value.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>Foreach</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=Function|Name=<nowiki>function</nowiki>|Description=<nowiki>A function that takes 2 parameters, the key and the value</nowiki>}}
 +
|Description=<nowiki>Run a function for each element.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=object|Name=<nowiki>this[] { get; }</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>The key used to lookup the value.</nowiki>}}
 +
|Description=<nowiki>Get an item based on a key.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=object|Name=<nowiki>this[] { get; }</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>The key used to lookup the value.</nowiki>}}
 +
|Description=<nowiki>Get an item based on a key.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>Inc</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>Increase the specific keys value</nowiki>}}
 +
|Description=<nowiki>Increase the value of a value for the given key by 1, creating the entry at 1 if doesnt exists.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=array|Name=<nowiki>KeysWhere</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=Function|Name=<nowiki>predicate</nowiki>|Description=<nowiki>A function that takes 2 parameters, the key and the value, and return true/false</nowiki>}}
 +
|Description=<nowiki>Filters keys based on a predicate.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=object|Name=<nowiki>Remove</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>Check with specific key</nowiki>}}
 +
|Description=<nowiki>Remove the value with the specified key from the dictionary.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=object|Name=<nowiki>Remove</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>Remove with specific key</nowiki>}}
 +
|Description=<nowiki>Remove the value with the specified key from the dictionary.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=array|Name=<nowiki>Select</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=Function|Name=<nowiki>function</nowiki>|Description=<nowiki>A function that takes 2 parameters, the key and the value, and return some value</nowiki>}}
 +
|Description=<nowiki>Run a function for each element and make array of return values.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>this[] { set; }</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>The key used to lookup the value.</nowiki>|Comma=,}}{{CGscriptParameters_Template|Type=object|Name=<nowiki>value</nowiki>|Description=<nowiki>The value to set.</nowiki>}}
 +
|Description=<nowiki>Set an item based on a key and a value.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>this[] { set; }</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>The key used to lookup the value.</nowiki>|Comma=,}}{{CGscriptParameters_Template|Type=object|Name=<nowiki>value</nowiki>|Description=<nowiki>The value to set.</nowiki>}}
 +
|Description=<nowiki>Set an item based on a key and a value.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=string|Name=<nowiki>ToString</nowiki>|Description=<nowiki>The string representation of the object.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=object|Name=<nowiki>TryGetValue</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>Remove with specific key</nowiki>}}
 +
|Description=<nowiki>Gets the value associated with the specified key.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=object|Name=<nowiki>TryGetValue</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>Remove with specific key</nowiki>}}
 +
|Description=<nowiki>Gets the value associated with the specified key.</nowiki>}}
 +
{{CGscriptMethods_Template|ReturnType=array|Name=<nowiki>ValuesWhere</nowiki>|Parameters=
 +
{{CGscriptParameters_Template|Type=Function|Name=<nowiki>predicate</nowiki>|Description=<nowiki>A function that takes 2 parameters, the key and the value, and return true/false</nowiki>}}
 +
|Description=<nowiki>Filters values based on a predicate.</nowiki>}}
 +
|Properties=
 +
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>Count</nowiki>|HasGetter=1|Description=<nowiki>Gets the number of key/value pairs contained in the dictionary.</nowiki>}}
 +
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Keys</nowiki>|HasGetter=1|Description=<nowiki>Gets a list of keys.</nowiki>}}
 +
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>ObjectTypeName</nowiki>|HasGetter=1|Description=<nowiki>The name of the type of object.</nowiki>}}
 +
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>SortedKeys</nowiki>|HasGetter=1|Description=<nowiki>Gets a list of keys sorted by current collation.</nowiki>}}
 +
{{CGscriptProperties_Template|ReturnType=TypeInformation|Name=<nowiki>TypeInformation</nowiki>|HasGetter=1|Inherited=object|Description=<nowiki>Get information about this class.</nowiki>}}
 +
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Values</nowiki>|HasGetter=1|Description=<nowiki>Gets a list of values.</nowiki>}}
 +
}}
 +
=== Examples ===
 +
<source lang="javascript">
 +
Dictionary d;
 +
print(d); // {}
 +
</source><br>
  
&nbsp;  
+
<source lang="javascript">
 +
Dictionary d = new Dictionary();
 +
print(d);  // {}
 +
</source><br>
  
==== <span style="color:#a52a2a;">'''Constructors'''</span> ====
+
<source lang="javascript">
 +
Dictionary d = {"key1": 1, "key2": 2};
 +
print(d);  // {"key1": 1, "key2": 2}
 +
</source><br>  
  
*<span style="color:#000000;">'''()''' - Create a new dictionary with non-argument.</span>  
+
<source lang="javascript">
*<span style="color:#000000;">'''(Params&nbsp; AnyType)''' - Create new dictionary with the specified key-value pairs.</span>
+
Dictionary d = {};             // Not work, will cause error.
*<span style="color:#000000;">'''(array keys,&nbsp; array values)''' - Create new dictionary with the specified keys and values.</span>
+
</source><br>  
  
==== <span style="color:#a52a2a;">'''Methods'''</span>  ====
+
<source lang="javascript">
 
+
Dictionary d1 = new Dictionary("key_01","value01");
*<span style="color:#000000;">'''bool Add(string key, AnyType value)''' - Adds the specified key and value to the dictionary.</span>
 
*<span style="color:#000000;">'''bool Add(number key, AnyType value)''' - Adds the specified key and value to the dictionary.</span>
 
*<span style="color:#000000;">'''Empty set_Item(string key, AnyType value)''' - Set an item based on a key and a value.</span>
 
*<span style="color:#000000;">'''Empty set_Item(number key, AnyType value)''' - Set an item based on a key and a value.</span>
 
*<span style="color:#000000;">'''AnyType get_Item(string key)''' - Get an item based on a key.</span>
 
*<span style="color:#000000;">'''AnyType get_Item(number key)''' - Get an item based on a key.</span>
 
*<span style="color:#000000;">'''AnyType TryGetValue(string key)''' - Gets the value associated with the specified key.</span>
 
*<span style="color:#000000;">'''AnyType TryGetValue(number key)''' - Gets the value associated with the specified key.</span>
 
*<span style="color:#000000;">'''bool ContainsKey(string key)''' - Determines whether the dictionary contains the specified key.</span>
 
*<span style="color:#000000;">'''bool ContainsKey(number key)''' - Determines whether the dictionary contains the specified key.</span>
 
*<span style="color:#000000;">'''bool ContainsValue(AnyType value)''' - Determines whether the dictionary contains the specified value.</span>
 
*<span style="color:#000000;">'''AnyType Remove(string key)''' - Remove the value with the specified key from the dictionary.</span>
 
*<span style="color:#000000;">'''AnyType Remove(number key)''' - Remove the value with the specified key from the dictionary.</span>
 
*<span style="color:#000000;">'''Empty Clear()''' - Remove all keys and values from the dictionary.</span>
 
*<span style="color:#000000;">'''string ToString()''' - The string representation of the object.</span>
 
 
 
==== <span style="color:#a52a2a;">'''Properties'''</span>  ====
 
 
 
*<span style="color:#000000;">'''number Count HasGetter'''&nbsp; - Gets the number of key/value pairs contained in the dictionary.</span>
 
*<span style="color:#000000;">'''array Keys HasGetter'''&nbsp; - Gets a list of keys.</span>
 
*<span style="color:#000000;">'''string ObjectTypeName HasGetter'''&nbsp; - The name of the type of object.</span>
 
*<span style="color:#000000;">'''array SortedKeys HasGetter'''&nbsp; - Gets a list of keys sorted by current collation.</span>
 
*<span style="color:#000000;">'''TypeInformation TypeInformation HasGetter'''&nbsp; - Get information about this class.</span>
 
*<span style="color:#000000;">'''array Values HasGetter'''&nbsp; - Gets a list of values.</span>
 
 
 
&nbsp;
 
 
 
==== <span style="color:#a52a2a;">'''Examples'''</span><br>  ====
 
 
 
<source lang="javascript">Dictionary d;
 
print(d);                // {}</source>
 
 
 
 
 
 
 
<source lang="javascript">Dictionary d = new Dictionary();
 
print(d);                // {}</source>
 
 
 
 
 
 
 
<source lang="javascript">Dictionary d = {"key1": 1, "key2": 2};
 
print(d);                // {"key1": 1, "key2": 2}</source>
 
 
 
 
 
 
 
<source lang="javascript">Dictionary d = {};            // Not work, will cause error.</source>
 
 
 
<br><source lang="javascript">Dictionary d1 = new Dictionary("key_01","value01");
 
 
print(d1);                                                                      // {"key_01": sdasd}
 
print(d1);                                                                      // {"key_01": sdasd}
 
print(d1.Add("key_02",2222));
 
print(d1.Add("key_02",2222));
Line 81: Line 122:
 
print(d1.Remove("key_01"));                                                    // value01
 
print(d1.Remove("key_01"));                                                    // value01
 
print(d1.Remove(3));                                                            // {3333,string333}
 
print(d1.Remove(3));                                                            // {3333,string333}
print(d1);                                                                      // {"key_02": 2222, "key_03": {happy,48,{funny,sad,88}}, "key01": 1111}</source>  
+
print(d1);                                                                      // {"key_02": 2222, "key_03": {happy,48,{funny,sad,88}}, "key01": 1111}
 +
</source><br />
 +
 
 +
<source lang="javascript">
 +
Dictionary d = {
 +
  "key01": "value01",
 +
  5: "value05"
 +
};
 +
print(d["key01"]);      // another way to get the values of keys
 +
print(d[5]);            // another way to get the values of keys
 +
</source> <br>
 +
 
 +
<source lang="javascript">
 +
//Example for using d.Inc("key") to increase value of the key up to 1, if the key not exist, create the key with value 1
 +
Dictionary d = {"key1": 1, "key2": 2};
 +
d.Inc("key2");// key2 existed, so increate value of key2 to 1 (2->3)
 +
print(d);//{"key1": 1, "key2": 3}
 +
d.Inc("key3");// key3 not exist, so add key3 to d with value 1
 +
print(d);//"key1": 1, "key2": 3, "key3": 1}
 +
</source>
  
<br> &nbsp;  
+
<source lang="javascript">
 +
//Use KeysWhere/ValuesWhere to get list of keys/values meet filter
 +
Dictionary d = {"key1":1,"key2":2,"key3":3,"key4":4};
 +
//KeysWhere
 +
d.KeysWhere(function(string key, number value ){if (value >= 3) return true;});// result: {key3,key4}
 +
//ValuesWhere
 +
d.ValuesWhere(function(string key, number value ){if (value >= 3) return true;});// result: {3,4}
  
&nbsp;
+
</source>
  
[[Category:Data_Types_Literals_and_Variables]]
+
[[Category:Classes]]

Latest revision as of 06:28, 20 July 2020

Dictionary



The dictionary object

Parent class

Inherits from object

Constructors

  • () - Create a new dictionary with non-argument.
  • (params AnyType) - Create new dictionary with the specified key-value pairs.
  • (array keys "keys arrayConstant", array values "values arrayConstant") - Create new dictionary with the specified keys and values.

Methods

  • bool Add(string key "Add with specific key", object value "Add with specific value") - Adds the specified key and value to the dictionary. Return false if there is an item with the same key has already been added.
  • bool Add(int key "Add with specific key", object value "Add with specific value") - Adds the specified key and value to the dictionary.
  • Empty Add(Dictionary src "Source of keys and values to add") - Adds the all keys and values from src to current.
  • Empty Clear() - Remove all keys and values from the dictionary.
  • bool ContainsKey(string key "Check with specific key") - Determines whether the dictionary contains the specified key.
  • bool ContainsKey(int key "Check with specific key") - Determines whether the dictionary contains the specified key.
  • bool ContainsValue(object value "Add with specific value") - Determines whether the dictionary contains the specified value.
  • Empty Foreach(Function function "A function that takes 2 parameters, the key and the value") - Run a function for each element.
  • object this[] { get; }(string key "The key used to lookup the value.") - Get an item based on a key.
  • object this[] { get; }(int key "The key used to lookup the value.") - Get an item based on a key.
  • Empty Inc(string key "Increase the specific keys value") - Increase the value of a value for the given key by 1, creating the entry at 1 if doesnt exists.
  • array KeysWhere(Function predicate "A function that takes 2 parameters, the key and the value, and return true/false") - Filters keys based on a predicate.
  • object Remove(string key "Check with specific key") - Remove the value with the specified key from the dictionary.
  • object Remove(int key "Remove with specific key") - Remove the value with the specified key from the dictionary.
  • array Select(Function function "A function that takes 2 parameters, the key and the value, and return some value") - Run a function for each element and make array of return values.
  • Empty this[] { set; }(string key "The key used to lookup the value.", object value "The value to set.") - Set an item based on a key and a value.
  • Empty this[] { set; }(int key "The key used to lookup the value.", object value "The value to set.") - Set an item based on a key and a value.
  • string ToString() - The string representation of the object.
  • object TryGetValue(string key "Remove with specific key") - Gets the value associated with the specified key.
  • object TryGetValue(int key "Remove with specific key") - Gets the value associated with the specified key.
  • array ValuesWhere(Function predicate "A function that takes 2 parameters, the key and the value, and return true/false") - Filters values based on a predicate.

Properties

  • int Count { get; } - Gets the number of key/value pairs contained in the dictionary.
  • array Keys { get; } - Gets a list of keys.
  • string ObjectTypeName { get; } - The name of the type of object.
  • array SortedKeys { get; } - Gets a list of keys sorted by current collation.
  • (From object) TypeInformation TypeInformation { get; } - Get information about this class.
  • array Values { get; } - Gets a list of values.

Examples

Dictionary d;
print(d); // {}


Dictionary d = new Dictionary();
print(d);  // {}


Dictionary d = {"key1": 1, "key2": 2};
print(d);   // {"key1": 1, "key2": 2}


Dictionary d = {};             // Not work, will cause error.


Dictionary d1 = new Dictionary("key_01","value01");
print(d1);                                                                      // {"key_01": sdasd}
print(d1.Add("key_02",2222));
print(d1.Add(3,"hello3333"));
print(d1.Add("key_03",{"happy",48,{"funny","sad",88}}));
print(d1);                               //          {"3": hello3333, "key_01": value01, "key_02": 2222, "key_03": {happy,48,{funny,sad,88}}}
print(d1.ContainsKey("key_01"));                                                // true
print(d1.ContainsKey(3));                                                       // true
print(d1.ContainsKey("noexist"));                                               // false
print(d1.ContainsValue("value01"));                                             // true
print(d1.ContainsValue(2222));                                                  // true
print(d1.ContainsValue({"happy",48,{"funny","sad",88}}));                       // true
print(d1.get_Item("key_01"));                                                   // value01
print(d1.get_Item(3));                                                          // hello3333
print(d1.set_Item("key01",1111));     
print(d1.set_Item(3,{3333,"string333"}));
print(d1.TryGetValue("key_01"));                                                // value01
print(d1.TryGetValue(3));                                                       // {3333,"string333"}
print(d1);                              //     {"3": {3333,string333}, "key_01": value01, "key_02": 2222, "key_03": {happy,48,{funny,sad,88}}, "key01": 1111}
print(d1.Count);                                                                // 5
print(d1.Keys);                                                                 // {key_01,key_02,3,key_03,key01}
print(d1.Values);                                                               // {value01,2222,{3333,string333},{happy,48,{funny,sad,88}},1111}
print(d1.Remove("key_01"));                                                     // value01
print(d1.Remove(3));                                                            // {3333,string333}
print(d1);                                                                      // {"key_02": 2222, "key_03": {happy,48,{funny,sad,88}}, "key01": 1111}


Dictionary d = {
  "key01": "value01",
  5: "value05"
}; 
print(d["key01"]);       // another way to get the values of keys
print(d[5]);             // another way to get the values of keys


//Example for using d.Inc("key") to increase value of the key up to 1, if the key not exist, create the key with value 1
Dictionary d = {"key1": 1, "key2": 2};
d.Inc("key2");// key2 existed, so increate value of key2 to 1 (2->3)
print(d);//{"key1": 1, "key2": 3}
d.Inc("key3");// key3 not exist, so add key3 to d with value 1
print(d);//"key1": 1, "key2": 3, "key3": 1}
//Use KeysWhere/ValuesWhere to get list of keys/values meet filter
Dictionary d = {"key1":1,"key2":2,"key3":3,"key4":4};
//KeysWhere
d.KeysWhere(function(string key, number value ){if (value >= 3) return true;});// result: {key3,key4}
//ValuesWhere
d.ValuesWhere(function(string key, number value ){if (value >= 3) return true;});// result: {3,4}