Ответ 1
int[] b = new int[3];
Array.Copy(a, 1, b, 0, 3);
- a = исходный массив
- 1 = начальный индекс в исходном массиве
- b = целевой массив
- 0 = начальный индекс в целевом массиве
- 3 = элементы для копирования
Как скопировать часть массива в другой массив?
У меня есть
int[] a = {1,2,3,4,5};
Теперь, если я даю начальный индекс и конец индекса массива a
, он должен быть скопирован в другой массив.
Как если бы я дал индекс начала как 1 и конечный индекс как 3, элементы 2, 3, 4 должны быть скопированы в новый массив.
int[] b = new int[3];
Array.Copy(a, 1, b, 0, 3);
См. этот вопрос. LINQ Take() и Skip() - самые популярные ответы, а также Array.CopyTo().
Предположительно более быстрый метод расширения описан здесь.
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.
При копировании из одного массива в другой массив вы должны указать тот же тип данных для другого массива, который вы копируете.
Примечание. Я нашел этот вопрос в поисках одного из шагов в ответе на то, как изменить размер существующего массива.
Итак, я подумал, что добавлю эту информацию здесь, если кто-то еще ищет, как сделать копию в дальнем конце, как частичный ответ на вопрос об изменении размера массива.
Если кто-то еще найдет этот вопрос в поисках того же, что и я, это очень просто:
Array.Resize<T>(ref arrayVariable, newSize);
где T - тип, т.е. где объявляется arrayVariable:
T[] arrayVariable;
Этот метод обрабатывает нулевые проверки, а также newSize == oldSize, который не имеет никакого эффекта и, конечно же, бесшумно обрабатывает случай, когда один из массивов длиннее другого.
Подробнее см. статью MSDN.