The BeanMap library provides a collection of Map classes which map a set of one or more keys to a single value. BeanMap may seem only to be a replacement for Dictionary<,> as it provides the same API, but it provides additional API for time saving code patterns.
The .NET Dictionary is a single key to value map which provides just the most basic of functions including get, set, Remove, and ContainsKey. BeanMap implements the IDictionary interface to simplify refactoring your project to swap in BeanMap in place of Dictionary. However, BeanMap adds new awesomely helpful functions. One of my favorite BeanMap functions is DefaultGeneration
which allows the programmer to specify how a new key and value are created at runtime when a key is requested that doesn't exist. It can be enormously helpful. All new features are not used by default, in fact, BeanMap maps will behave identically to a Dictionary by default.
Additionally, BeanMap adds new map templates. Sure it has the simple single key single value map, Map<TKey, TValue>. But there are some new types. It adds a two key and a three key map, Map<TKey1, TKey2, TValue> and Map<TKey1, TKey2, TKey3, TValue> respectively. Additionally, if you find that your needs are beyond a 1, 2, and 3 key map, there is some extensibility in the MapBase