A library for Collections with Versions, keeping track of the full Collection History, allowing for operations to get the state of a Collection during a previous Version.
var dictionary = new VersionedDictionary<string, string>();
dictionary.Add("key", "value");
dictionary.Remove("key");
dictionary.Add("key", "value2");
dictionary["key"]; // "value2"
dictionary[1, "key"]; // "value"
dictionary.GetDictionary(1); // { "key", "value" }
dictionary.GetDictionary(2); // { }
dictionary.GetDictionary(3); // { "key", "value2" }
dictionary.GetDictionary(); // { "key", "value2" }