Supprimer des éléments du tableau en C#
Scène :
Supposons que vous ayez un tableau d'entiers :
int[] numbers = {1, 3, 4, 9, 2};
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 :
int[] numbers = { 1, 3, 4, 9, 2 }; int numToRemove = 4; numbers = numbers.Where(val => val != numToRemove).ToArray();
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 :
static bool isNotFour(int n) { return n != 4; } int[] numbers = { 1, 3, 4, 9, 2 }; numbers = Array.FindAll(numbers, isNotFour);
Supprimer uniquement la première instance :
Si vous souhaitez supprimer uniquement la première occurrence d'un élément spécifique :
Méthode LINQ :
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();
Méthodes non-LINQ :
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();
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!