Пример #1
0
        /// <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.
        }
Пример #2
0
        /// <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.
        }