public void CopyTo(T[] array, int arrayIndex, int count) { if (array == null) { throw new ArgumentNullException("array"); } if (arrayIndex < 0) { throw new ArgumentOutOfRangeException("Index cannot be less than zero."); } if (count < 0) { throw new ArgumentOutOfRangeException("Count cannot be less than zero."); } if (arrayIndex > array.Length || count > (array.Length - arrayIndex)) { throw new ArgumentException("Destination array is too small"); } Contract.EndContractBlock(); int p = arrayIndex; count = Math.Min(count, m_count); foreach (var item in ColaStore.IterateOrdered(count, m_levels, m_comparer, false)) { array[p++] = item; } Contract.Assert(p == arrayIndex + count); }
internal IEnumerable <T> IterateOrdered(bool reverse = false) { return(ColaStore.IterateOrdered(m_count, m_levels, m_comparer, reverse)); }