Как создать массив, не зная, сколько значений будет храниться? - PullRequest
1 голос
/ 18 марта 2019

В C # я храню значения в массиве.

Поэтому для создания этого массива я использую этот код: 'int [] values ​​= new int [10];'

Но что, если мне нужно более 10 значений или я никогда не знаю, сколько значений у меня будет.Может быть 1, 10 или 100.

Я понимаю идею, что мне нужно сообщить компилятору, насколько большим должен быть массив, чтобы он мог выделить для него пространство памяти.

Есть лиспособ обойти это?

Ответы [ 3 ]

3 голосов
/ 18 марта 2019

Вы можете просто использовать List и позволить ему выполнить всю тяжелую работу за вас:

List<int> values = new List<int>();
1 голос
/ 18 марта 2019

Массивы должны иметь определенную длину.Если вы хотите динамический размер, рассмотрите возможность использования класса List.

0 голосов
/ 18 марта 2019

Пожалуйста, взгляните и изучите понятие "Неизменяемые объекты"

Массив имеет фиксированный размер. Если вам нужен массив с динамическим размером, лучше всего создать методы расширения или обработчик, который сделает всю работу за вас.

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

Конечно, класс List будет работать и, вероятно, решит вашу проблему.

...