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>
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>
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>
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>
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>
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!