Как скопировать часть массива в другой массив в С#?

Как скопировать часть массива в другой массив?

У меня есть

int[] a = {1,2,3,4,5};

Теперь, если я даю начальный индекс и конец индекса массива a, он должен быть скопирован в другой массив.

Как если бы я дал индекс начала как 1 и конечный индекс как 3, элементы 2, 3, 4 должны быть скопированы в новый массив.

Ответ 1

int[] b = new int[3];
Array.Copy(a, 1, b, 0, 3);
  • a = исходный массив
  • 1 = начальный индекс в исходном массиве
  • b = целевой массив
  • 0 = начальный индекс в целевом массиве
  • 3 = элементы для копирования

Ответ 3

int[] a = {1,2,3,4,5};

int [] b= new int[a.length]; //New Array and the size of a which is 4

Array.Copy(a,b,a.length);

Где Array - класс, имеющий метод Copy, который копирует элемент массива в массив b.

При копировании из одного массива в другой массив вы должны указать тот же тип данных для другого массива, который вы копируете.

Ответ 4

Примечание. Я нашел этот вопрос в поисках одного из шагов в ответе на то, как изменить размер существующего массива.

Итак, я подумал, что добавлю эту информацию здесь, если кто-то еще ищет, как сделать копию в дальнем конце, как частичный ответ на вопрос об изменении размера массива.

Если кто-то еще найдет этот вопрос в поисках того же, что и я, это очень просто:

Array.Resize<T>(ref arrayVariable, newSize);

где T - тип, т.е. где объявляется arrayVariable:

T[] arrayVariable;

Этот метод обрабатывает нулевые проверки, а также newSize == oldSize, который не имеет никакого эффекта и, конечно же, бесшумно обрабатывает случай, когда один из массивов длиннее другого.

Подробнее см. статью MSDN.