К сожалению, на 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(); // На выходе получаем массив с удаленным элементом } } } |
@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); |