Как добавить элемент в массив в C#?

Пользователь

от vladimir , в категории: Другие , 2 года назад

Как добавить элемент в массив в C#?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

К сожалению, на C# массивы являются неизменяемыми, поэтому элемент в массив добавить не получится.

Но на этот случай есть два других типа данных - Очереди и Стеки.

Далее из стека мы можем вновь сделать массив.


Рассмотрим Стек.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Collections;

namespace Stacks
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack basicStak = new Stack(); // Инициализируем стак
            basicStak.Push("Apple"); // Добавляем значение
            basicStak.Push("Orange");
            basicStak.Push("Banana");

            foreach (Object obj in basicStak) // Циклом перебираем все значения
            {
                Console.WriteLine("{0}", obj); // Выводим значение
            }

            object array = new object[3];

            array = basicStak.ToArray(); // На выходе получаем массив
        }
    }
}


Пользователь

от nikko , год назад

@vladimir 

Для добавления элемента в массив в C# можно использовать методы класса System.Array.


Если массив имеет фиксированный размер, то необходимо создать новый массив с увеличенным размером и скопировать в него старые элементы вместе с новым элементом.


Например, если у нас есть массив arr типа int и мы хотим добавить новый элемент x, можно сделать следующее:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
int[] arr = new int[5]; // Создаем массив с пятью элементами
int x = 10; // Новый элемент, который мы хотим добавить

// Создаем новый массив с шестью элементами
int[] newArr = new int[arr.Length + 1]; 

// Копируем старые элементы в новый массив
for (int i = 0; i < arr.Length; i++)
{
    newArr[i] = arr[i];
}

// Добавляем новый элемент
newArr[newArr.Length - 1] = x;

// Перезаписываем старый массив новым массивом
arr = newArr;


Если массив имеет изменяемый размер, то можно использовать класс System.Collections.Generic.List<T>. Для добавления нового элемента в список можно использовать метод List<T>.Add(item):

1
2
3
4
5
List<int> list = new List<int>(); // Создаем пустой список
int x = 10; // Новый элемент, который мы хотим добавить

// Добавляем элемент в список
list.Add(x);


Также можно добавлять несколько элементов в список с помощью метода List<T>.AddRange(collection):

1
2
3
4
5
List<int> list = new List<int>(); // Создаем пустой список
int[] arr = { 10, 20, 30 }; // Новые элементы, которые мы хотим добавить

// Добавляем элементы в список
list.AddRange(arr);