Массивы начинаются с нуля в C # , что означает, что первый элемент в массиве имеет индекс 0, а не индекс 1.
Однако свойство Length
возвращает единичный счетчик количества объектов в массиве. Поэтому, когда вы пишете x <= nums.Length
, вы на самом деле пытаетесь получить доступ к индексу, который находится за пределами массива.
Вместо этого вам следует переписать этот раздел кода следующим образом:
while (x < nums.Length && y < nums1.Length)
{
if (nums[x] <= nums1[y])
{
nums2[z] = nums[x];
x++;
}
// etc.