Практическое руководство. Изменение размера массива
Обновлен: Ноябрь 2007
Чтобы изменить размер переменной массива, присвойте ей новый объект массива. Можно использовать стандартный оператор присваивания или Оператор ReDim (Visual Basic). В любом случае исходный массив полностью заменяется новым, а переменная массива указывает на новый массив.
Изменение размера массива обеспечивает эффективное управление памятью. Например, можно начать с небольшого массива и затем увеличивать его размер по мере необходимости. Кроме того, можно начать с большого массива и затем уменьшить его размер, если больше не требуется хранение больших объемов информации. Таким образом, массив занимает дополнительную память только в том случае, если это необходимо.
Изменение размера переменной массива с использованием стандартного оператора присваивания
Создайте новый объект массива, указав новую размерность.
Назначьте новый объект массива переменной массива.
Dim thisArrayVariable() As Integer = New Integer(99) {} thisArrayVariable = New Integer(49) {}
Изменение размера переменной массива с помощью инструкции ReDim
Укажите новую размерность для переменной массива в операторе ReDim.
Dim thisArrayVariable() As Integer = New Integer(99) {} ReDim thisArrayVariable(9)
После переобъявления массива с помощью оператора ReDim существующие значения его элементов обычно теряются. Однако можно сохранить их, включив ключевое слово Preserve в операторе ReDim.
Изменение размера существующего массива с сохранением значений его элементов
Укажите новую размерность для переменной массива в операторе ReDim.
Добавьте ключевое слово Preserve в оператор ReDim. В следующем примере создается новый массив, его элементы инициализируются из соответствующих элементов существующего массива в arrayToIncrease, после чего новый массив присваивается переменной массива arrayToIncrease.
Dim arrayToIncrease(9, 49) ReDim Preserve arrayToIncrease(9, 199)
При использовании Preserve в многомерных массивах можно изменять только последнее измерение. При попытке изменить любые другие измерения возникает исключение ArrayTypeMismatchException.
Если изменяется большой массив с помощью ключевого слова Preserve, имейте ввиду, что Visual Basic должен скопировать все существующие элементы в новый массив. Это может заметно снизить производительность.
См. также
Задачи
Практическое руководство. Объявление переменной типа массива
Практическое руководство. Создание массива
Практическое руководство. Инициализация переменной типа массива
Практическое руководство. Определения размера массива
Практическое руководство. Определение длины одного измерения массива
Практическое руководство. Присвоение одного массива другому
Практическое руководство. Замена массива на другой массив
Устранение неполадок, связанных с массивами