Динамический массив в C#



есть ли метод для создания динамического массива в C#?

407   7  
c#

7 ответов:

расширение ответа Криса и Миголя с образцом кода.

через массив

Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");

использование общего списка. Под капотом класс List использует массив для хранения, но делает это таким образом, что позволяет ему эффективно расти.

List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];

иногда простые массивы предпочтительнее общих списков, поскольку они более удобны (лучшая производительность для дорогостоящих вычислений-например, для приложений числовой алгебры или для обмена данными со статистическим программным обеспечением, таким как R или Matlab)

в этом случае вы можете использовать метод ToArray () после динамической инициализации списка

List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");

string[] array = list.ToArray();

конечно, это имеет смысл только если размер массива не известен ни ex-ante. Если вы уже знаю размер вашего массива в какой-то момент программы лучше инициировать его как массив фиксированной длины. (Например, если вы извлекаете данные из результирующего набора, вы можете подсчитать его размер и динамически инициировать массив этого размера)

С уважением,

MJ

List<T> для строго типизированного или ArrayList если у вас есть .NET 1.1 или любите бросать переменные.

использовать список выбора который на самом деле реализовать массив. Он принимает первоначально массив размера 4 и когда он заполняется, создается новый массив с его двойным размером и данные первого массива копируются во второй массив, теперь новый элемент вставляется в новый массив. Также имя второго массива создает псевдоним первого, так что он может быть доступен по тому же имени, что и предыдущий, и первый массив будет удален

Пример Динамического Массива:

Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];

for (int i = 0; i < number; i++)
{
    arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++ )
{
    Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();

Comments

    Ничего не найдено.