[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Удалить элемент из одномерного массива можно путем перезаписи или же используя методы расширения Linq To Objects.
Пример перезаписи элементов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
static void Main() { int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; array = Remove(array, indexToDelete: 3); } static int[] Remove(int[] array, int indexToDelete) { if (indexToDelete >= 0 && indexToDelete < array.Length) { int[] array2 = new int[array.Length - 1]; for (int i = 0, j = 0; i < array.Length; i++) { if (i == indexToDelete) continue; array2[j++] = array[i]; } return array2; } else { throw new IndexOutOfRangeException("Incorrect index."); } } |
Пример удаления через метод расширения Where, по значению:
1 2 3 4 5 |
static void Main() { int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; array = array.Where(x => x != 3).ToArray(); } |
Пример удаления через метод расширения Where, по индексу:
1 2 3 4 5 6 |
static void Main() { int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int index = 0; array = array.Where((_, i) => i != 0).ToArray(); } |
Пример удаления через метод Resize, класса Array:
1 2 3 4 5 6 7 8 9 10 |
static void Main() { int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int index = 3; for (int i = index; i < array.Length - 1; i++) { array[i] = array[i + 1]; } Array.Resize(ref array, array.Length - 1); } |
Есть и другие варианты для удаления, через метод Copy, класса Array, через метод расширения Except и т.д.