/// <summary> /// Access the part of a virtual array. /// </summary> /// <param name="startRow">The first row in required block.</param> /// <param name="numberOfRows">The number of required rows.</param> /// <returns>The required part of virtual array.</returns> public T[][] Access(int startRow, int numberOfRows) { /* debugging check */ if (startRow + numberOfRows > m_buffer.Length) { if (m_cinfo != null) m_cinfo.ERREXIT(J_MESSAGE_CODE.JERR_BAD_VIRTUAL_ACCESS); else throw new InvalidOperationException("Bogus virtual array access"); } /* Return proper part of the buffer */ T[][] ret = new T[numberOfRows][]; for (int i = 0; i < numberOfRows; i++) ret[i] = m_buffer[startRow + i]; return ret; }