A command line work sample, implementing a multi-value dictionary and some commands for interacting with it.
Built with .NET Framework 4.7.2: https://dotnet.microsoft.com/download/dotnet-framework/net472
- Clone the repo (See https://docs.github.com/en/github/getting-started-with-github/getting-started-with-git/about-remote-repositories#cloning-with-https-urls)
- Open the SLN file in Visual Studio. Built with .NET Framework, though it may work in .NET Core.
- Build the solution
CTRL+SHIFT+B - Run the executable
Returns all the keys in the dictionary. Order is not guaranteed.
Example
> ADD foo bar
) Added
> ADD baz bang
) Added
> KEYS
1) foo
2) baz
Returns the collection of strings for the given key. Return order is not guaranteed. Returns an error if the key does not exists.
Example:
> ADD foo bar
> ADD foo baz
> MEMBERS foo
1) bar
2) baz
> MEMBERS bad
) ERROR, key does not exist.
Add a member to a collection for a given key. Displays an error if the value already existed in the collection.
> ADD foo bar
) Added
> ADD foo baz
) Added
> ADD foo bar
) ERROR, value already exists
Removes a value from a key. If the last value is removed from the key, they key is removed from the dictionary. If the key or value does not exist, displays an error.
Example:
> ADD foo bar
) Added
> ADD foo baz
) Added
> REMOVE foo bar
) Removed
> REMOVE foo bar
) ERROR, value does not exist
> KEYS
1) foo
> REMOVE foo baz
) Removed
> KEYS
) empty set
> REMOVE boom
) ERROR, key does not exist
Removes all value for a key and removes the key from the dictionary. Returns an error if the key does not exist.
Example:
> ADD foo bar
) Added
> ADD foo baz
) Added
> KEYS
1) foo
> REMOVEALL foo
) Removed
> KEYS
(empty set)
REMOVEALL foo
) ERROR, key does not exist
Removes all keys and all values from the dictionary.
Example:
> ADD foo bar
) Added
> ADD bang zip
) Added
> KEYS
1) foo
2) bang
> CLEAR
) Cleared
> KEYS
(empty set)
> CLEAR
) Cleared
> KEYS
(empty set)
Returns whether a key exists or not.
Example:
> KEYEXISTS foo
) false
> ADD foo bar
) Added
> KEYEXISTS foo
) true
Returns whether a value exists within a key. Returns false if the key does not exist.
Example:
> VALUEEXISTS foo bar
) false
> ADD foo bar
) Added
> VALUEEXISTS foo bar
) true
> VALUEEXISTS foo baz
) false
Returns all the values in the dictionary. Returns nothing if there are none. Order is not guaranteed.
Example:
> ALLMEMBERS
(empty set)
> ADD foo bar
) Added
> ADD foo baz
) Added
> ALLMEMBERS
1) bar
2) baz
> ADD bang bar
) Added
> ADD bang baz
> ALLMEMBERS
1) bar
2) baz
3) bar
4) baz
Returns all keys in the dictionary and all of their values. Returns nothing if there are none. Order is not guaranteed.
Example:
> ITEMS
(empty set)
> ADD foo bar
) Added
> ADD foo baz
) Added
> ITEMS
1) foo: bar
2) foo: baz
> ADD bang bar
) Added
> ADD bang baz
> ITEMS
1) foo: bar
2) foo: baz
3) bang: bar
4) bang: baz