Хорошо, поэтому я делаю калькулятор. Вы знаете, как в калькуляторе, после нажатия кнопок «плюс», «минус» и т. Д., Вы можете ввести новый номер. Я пытаюсь сделать это с помощью массива. Каждый раз, когда пользователь нажимает кнопку «Ввод», номер в текстовом поле будет добавлен в массив. Затем массив будет суммирован, чтобы иметь общее количество всех чисел в массиве.Изменить размер массива в зависимости от количества элементов в нем
Поскольку пользователь может ввести столько чисел, сколько захочет, я предполагаю, что мне нужно использовать динамический массив.
Есть ли способ уменьшить размер массива так, чтобы длина была числом элементов в массиве?
Вот как я мой массив заявил:
Dim inputNumbers() As Double = New Double() {}
А вот как я пытаюсь изменить его размер. Я пытаюсь подсчитать, сколько элементов в массиве (который проводится в переменной intItems
. Затем я пытаюсь переобъявить массив, используя intItems
как число элементов массива.
Dim intItems As Integer
intItems = UBound(inputNumbers)
ReDim inputNumbers(intItems)
For i As Integer = 0 To inputNumbers.Length - 1
inputNumbers(i) = CDbl(inputTxt.Text)
Next i
Это код, который я Для этого введите номер, так как будет число, массив должен начинаться с 1 пункта в нем при нажатии этой кнопки, поэтому он должен быть введенным числом (0), что означает, что в нем 1 элемент.
Эта программа будет выводить сумму массива в 0. В ходе выполнения отладчика он пропускает цикл for, потому что, когда он добирается до него, цикл for начинается с For i as Integer = 0 to 0
, поэтому он не запускается.
Так что прямо сейчас, я не знаю, что делать. Я попытался просто заставить массив удерживать 999 элементов в начале, но это делает вывод отображения неправильной информации.
Итак, мой вопрос заключается в том, как сделать так, чтобы длина массива была равна количеству элементов внутри него.
Заранее спасибо.
'REDIM PRESERVE' – SSS
Я бы посоветовал вам использовать« Список (Double) и не беспокоиться об этом виде микроменеджмента памяти. –
Obvios XY проблема. Основная проблема -> потребности в динамической коллекции, выбранное решение -> есть массив, вопрос -> как изменить размер массива. Реальный ответ на основную проблему - «Список (Double)», как уже отмечал @ZevSpitz. – Fabio