Handy multi-purpose collection classes.
All collections are in the System.Collections.Generic namespace.
Collection dictionaries:
ListDictionary<TKey, TValue>: A dictionary of lists, similar toDictionary<TKey, List<TValue>>.SetDictionary<TKey, TValue>: A dictionary of sets, similar toDictionary<TKey, HashSet<TValue>>.StackDictionary<TKey, TValue>: A dictionary of stacks, similar toDictionary<TKey, Stack<TValue>>.QueueDictionary<TKey, TValue>: A dictionary of queues, similar toDictionary<TKey, Queue<TValue>>.DictionaryDictionary<TFirstKey, TSecondKey, TValue>: A dictionary of dictionaries, similar toDictionary<TFirstKey, Dictionary<TSecondKey, TValue>>.
Other collections:
UniqueDrawer<T>: A collection ofTs that can be drawn (removed and returned) in a specified and/or random order until the drawer is empty.BidirectionalDictionary<TKey, TValue>: Mostly aDictionary<TKey, TValue>that is extended to provide performant methods withTValueinputs.SerializableDictionary<TKey, TValue>: A dictionary that can be serialized, similar toDictionary<TKey, TValue>.
In Unity: Window > Package Manager > + > Add package from git URL, then enter:
https://github.com/tea-spoons/collections.git
Pin a release by appending a tag, for example #v0.10.0.
See CHANGE-PLAN.md for what changed before publishing and what is planned next.
Copyright (c) 2026 Bigpoint. Authored by Muhammad Tarek Abdou.
Available for research, education and other noncommercial use under the PolyForm Noncommercial 1.0.0 license. Commercial use is not permitted.