/// <summary> /// Copies all assignments to the specified array at the specified index. /// </summary> /// <param name="array">Array.</param> /// <param name="arrayIndex">Array index.</param> public void CopyTo(KeyValuePair <TKey, TValue>[] array, int arrayIndex) { RuntimeAssert.ArgumentNotNull(array, nameof(array)); RuntimeAssert.IndexInRange(arrayIndex, 0, array.Length - 1, nameof(arrayIndex)); RuntimeAssert.GreaterOrEquals(array.Length - arrayIndex, _count, nameof(array)); if (null != _entries) { for (var i = 0; i < _count; ++i) { if (_entries[i].HashCode >= 0) { array[i + arrayIndex] = new KeyValuePair <TKey, TValue>(_entries[i].Key, _entries[i].Value); } } } }