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

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

от greyson , в категории: Другие , 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
26
27
28
29
30
31
32
33
34
35
36
37
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); // Выводим значение
            }

            Console.WriteLine("***");

            basicStak.Pop(); // Удаляем элемент, который находится вначале стека

            foreach (Object obj in basicStak)
            {
                Console.WriteLine("{0}", obj);
            }

            // Во втором выводе нет элемента "Banana"

            object[] array = new object[2];

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


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

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

@greyson 

В C# можно удалить элемент из массива с помощью метода Array.Remove(). Например:

1
2
3
int[] myArray = { 1, 2, 3, 4, 5 };
int itemToRemove = 3;
Array.Remove(myArray, itemToRemove);


Этот метод удаляет первое вхождение элемента из массива и сдвигает все остальные элементы влево.


Вы также можете удалить элемент из массива, используя метод List<T>.Remove() , который работает со списком, который является обобщенной версией массива.

1
2
3
List<int> myList = new List<int> { 1, 2, 3, 4, 5 };
int itemToRemove = 3;
myList.Remove(itemToRemove);


Если вам нужно удалить элемент по индексу, можно использовать метод List<T>.RemoveAt().

1
2
3
List<int> myList = new List<int> { 1, 2, 3, 4, 5 };
int indexToRemove = 2;
myList.RemoveAt(indexToRemove);