/// <summary> /// Creates a new dictionary. /// </summary> public Dictionary(MemoryMap map, int hashes, Func <TKey, int> keyGetHashCode, Func <TKey, TKey, bool> keyEquals) { _hashedPointers = new Array <uint>(map, hashes, ArrayProfile.NoCache); _keyValueList = new List <uint>(map, 1024); _keys = new Indexes.Index <TKey>(map, 1024 * 1024 * 4); _values = new Indexes.Index <TValue>(map, 1024 * 1024 * 4); _keyGetHashCode = keyGetHashCode; _keysEqual = keyEquals; _keyValueList.Add(0); // zero cannot be used. }
/// <summary> /// Creates a new dictionary. /// </summary> public Dictionary(int hashes, Func <TKey, int> keyGetHashCode, Func <TKey, TKey, bool> keyEquals) { var map = new MemoryMapStream(new System.IO.MemoryStream()); _hashedPointers = new MemoryArray <uint>(hashes); _keyValueList = new List <uint>(); _keys = new Indexes.Index <TKey>(map, 1024 * 1024 * 4); _values = new Indexes.Index <TValue>(map, 1024 * 1024 * 4); _keyGetHashCode = keyGetHashCode; _keysEqual = keyEquals; _keyValueList.Add(0); // zero cannot be used. }