Como remover um elemento de uma array em C#

Minahil Noor 11 dezembro 2023
  1. Utilize a cláusula where() para remover o elemento de um array em C#
  2. Utilize o programa de deslocamento para remover o elemento de um array em C#
Como remover um elemento de uma array em C#

Este artigo introduzirá diferentes métodos para remover o elemento de uma array regular utilizando código C#, como a cláusula where() e o programa de deslocamento.

Utilize a cláusula where() para remover o elemento de um array em C#

Em C#, não existe tal método para remover ou adicionar elementos a uma array existente. É por isso que é recomendado usar uma lista ao invés de uma array. Mas podemos utilizar a cláusula [where()](https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/where-generic-type-constraint#:~:text=The%20where%20clause%20in%20a,%2C%20value%2C%20 or%20unmanaged%20type./) do LINQ para encontrar o índice do elemento a ser removido e pular o elemento. Depois disso, converteremos o array em um novo array sem o elemento especificado.

O programa abaixo mostra como podemos utilizar a cláusula where() para remover o elemento de um array regular.

using System;
using System.Linq;

class StringToFloat {
  static void Main(string[] args) {
    string[] myArray = { "a", "b", "c", "d", "e" };
    Console.WriteLine("Array before deletion");
    foreach (string value in myArray) {
      Console.WriteLine(value);
    }
    int indexToRemove = 3;
    myArray = myArray.Where((source, index) => index != indexToRemove).ToArray();
    Console.WriteLine("Array after deletion");

    foreach (string value in myArray) {
      Console.WriteLine(value);
    }
  }
}

Resultado:

Array before deletion a b c d e Array after deletion a b c e

Utilize o programa de deslocamento para remover o elemento de um array em C#

Usaremos o programa de troca de elementos para remover o elemento de uma array regular.

O programa de mudança de elemento é o seguinte.

using System;
using System.Linq;

class StringToFloat {
  static void Main(string[] args) {
    string[] myArray = { "a", "b", "c", "d", "e" };
    Console.WriteLine("Array before deletion");
    foreach (string value in myArray) {
      Console.WriteLine(value);
    }
    int pos = 3;
    int i;
    for (i = pos - 1; i < 4; i++) {
      myArray[i] = myArray[i + 1];
    }
    Console.WriteLine("Array after deletion");

    for (i = 0; i < 4; i++) {
      Console.WriteLine(myArray[i]);
    }
  }
}

Resultado:

Array before deletion a b c d e Array after deletion a b d e

Artigo relacionado - Csharp Array