[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на 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 тощо.