MultiKeyCollections adds MultiKeyDictionary classes which, as the name implies, are dictionaries that can be accessed by more than one key. These can be sliced to obtain representations with less keys. A slice is just a lower dimensional representation that fully supports manipulation. The actual values are kept in a single list, the keys map into this list via sets of indices.
$ dotnet add package MultiKeyCollectionsNo README available.