///<summary>
 ///Creates a XArrayHelper and copies the values from a XArrayHelper.
 ///</summary>
 ///<param name="table">The source XArrayHelper to be copied.</param>
 public void LoadRows(XArrayHelper table)
 {
     RedimXArray(new int[] { table.GetUpperBound(0), table.GetUpperBound(1) }, new int[] { table.GetLowerBound(0), table.GetLowerBound(1) });
     for (int row = table.GetLowerBound(0); row <= table.GetUpperBound(0); row++)
     {
         for (int col = table.GetLowerBound(1); col <= table.GetUpperBound(1); col++)
         {
             SetValue(table.GetValue(row, col), row, col);
         }
     }
 }
        ///<summary>
        ///Clears a range of elements in the XArrayHelper.
        ///</summary>
        ///<param name="arr">XArrayHelper whose elements need to be cleared.</param>
        ///<param name="index">The starting index of the range of elements.</param>
        ///<param name="length">The number of elements to be cleared.</param>
        public static void Clear(XArrayHelper arr, int index, int length)
        {
            int realIndexi = arr.GetLowerBound(0);
            int realIndexj = arr.GetLowerBound(1);

            index = index - arr.GetLowerBound(0);

            while (index > 0)
            {
                if (index > arr.GetUpperBound(1))
                {
                    realIndexi = realIndexi + 1;
                    index      = index - arr.GetLength(1);
                }
                else
                {
                    realIndexj = realIndexj + index;
                    index      = 0;
                }
            }

            for (int j = realIndexj; j <= arr.GetUpperBound(1); j++)
            {
                if (length < 0)
                {
                    return;
                }
                arr[realIndexi, j] = null;
                length             = length - 1;
            }

            realIndexi = realIndexi + 1;

            for (int i = realIndexi; i <= arr.GetUpperBound(0); i++)
            {
                for (int j = arr.GetLowerBound(1); j <= arr.GetUpperBound(1); j++)
                {
                    if (length < 1)
                    {
                        return;
                    }
                    arr[i, j] = null;
                    length    = length - 1;
                }
            }
        }