Maison > développement back-end > C++ > Comment supprimer efficacement des éléments d'un tableau C# par valeur ?

Comment supprimer efficacement des éléments d'un tableau C# par valeur ?

Mary-Kate Olsen
Libérer: 2025-01-20 20:50:14
original
120 Les gens l'ont consulté

How to Efficiently Delete Elements from a C# Array by Value?

Supprimer des éléments du tableau en C#

Scène :

Supposons que vous ayez un tableau d'entiers :

<code class="language-c#">int[] numbers = {1, 3, 4, 9, 2};</code>
Copier après la connexion

Vous souhaitez supprimer des éléments avec une valeur spécifique (par exemple, 4). Bien que vous puissiez utiliser ArrayList pour gérer les tableaux, sa méthode RemoveAt ne permet pas le filtrage basé sur les valeurs des éléments.

Solution :

Pour supprimer des éléments d'un tableau par nom (valeur), vous pouvez utiliser des méthodes LINQ ou non-LINQ.

Méthode LINQ (.NET Framework 3.5) :

À l'aide de la méthode Where de LINQ, vous pouvez filtrer les éléments et exclure ceux que vous souhaitez supprimer :

<code class="language-c#">int[] numbers = { 1, 3, 4, 9, 2 };
int numToRemove = 4;
numbers = numbers.Where(val => val != numToRemove).ToArray();</code>
Copier après la connexion

Méthode non-LINQ (.NET Framework 2.0) :

Pour les environnements sans LINQ, vous pouvez utiliser la méthode Array intégrée pour obtenir le même résultat :

<code class="language-c#">static bool isNotFour(int n)
{
    return n != 4;
}

int[] numbers = { 1, 3, 4, 9, 2 };
numbers = Array.FindAll(numbers, isNotFour);</code>
Copier après la connexion

Supprimer uniquement la première instance :

Si vous souhaitez supprimer uniquement la première occurrence d'un élément spécifique :

Méthode LINQ :

<code class="language-c#">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int numToRemove = 4;
int numIndex = Array.IndexOf(numbers, numToRemove);
numbers = numbers.Where((val, idx) => idx != numIndex).ToArray();</code>
Copier après la connexion

Méthodes non-LINQ :

<code class="language-c#">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int numToRemove = 4;
int numIdx = Array.IndexOf(numbers, numToRemove);
List<int> tmp = new List<int>(numbers);
tmp.RemoveAt(numIdx);
numbers = tmp.ToArray();</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal