Difference between revisions of "Dictionary class"
(2 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
|Name=<nowiki>Dictionary</nowiki> | |Name=<nowiki>Dictionary</nowiki> | ||
|Description=<nowiki>The dictionary object</nowiki> | |Description=<nowiki>The dictionary object</nowiki> | ||
− | |Constructors= | + | |InheritsFrom=object|Constructors= |
{{CGscriptConstructors_Template|Description=<nowiki>Create a new dictionary with non-argument.</nowiki>}} | {{CGscriptConstructors_Template|Description=<nowiki>Create a new dictionary with non-argument.</nowiki>}} | ||
{{CGscriptConstructors_Template|Parameters={{CGscriptParameters_Template|Type=params AnyType|Name=params AnyType|Description=}} | {{CGscriptConstructors_Template|Parameters={{CGscriptParameters_Template|Type=params AnyType|Name=params AnyType|Description=}} | ||
Line 12: | Line 12: | ||
{{CGscriptMethods_Template|ReturnType=bool|Name=<nowiki>Add</nowiki>|Parameters= | {{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>}} | {{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.</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= | {{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>}} | {{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>}} | ||
Line 29: | Line 29: | ||
{{CGscriptParameters_Template|Type=object|Name=<nowiki>value</nowiki>|Description=<nowiki>Add with specific value</nowiki>}} | {{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>}} | |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= | {{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>}} | {{CGscriptParameters_Template|Type=string|Name=<nowiki>key</nowiki>|Description=<nowiki>The key used to lookup the value.</nowiki>}} | ||
Line 47: | Line 50: | ||
{{CGscriptParameters_Template|Type=int|Name=<nowiki>key</nowiki>|Description=<nowiki>Remove with specific key</nowiki>}} | {{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>}} | |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= | {{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>}} | {{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>}} | ||
Line 68: | Line 74: | ||
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>ObjectTypeName</nowiki>|HasGetter=1|Description=<nowiki>The name of the type of object.</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=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|Description=<nowiki>Get information about this class.</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>}} | {{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Values</nowiki>|HasGetter=1|Description=<nowiki>Gets a list of values.</nowiki>}} | ||
}} | }} | ||
− | |||
− | |||
=== Examples === | === Examples === | ||
<source lang="javascript"> | <source lang="javascript"> | ||
Line 139: | Line 143: | ||
</source> | </source> | ||
+ | <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} | ||
+ | |||
+ | </source> | ||
[[Category:Classes]] | [[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}