En C#, les tableaux sont implémentés sous forme de blocs de mémoire contigus qui stockent des valeurs du même type. Cependant, contrairement à d'autres collections telles que ArrayLists, les tableaux ont une flexibilité limitée dans la manipulation des éléments. Voici comment gérer la suppression d'éléments d'un tableau :
Pour supprimer toutes les instances d'une valeur spécifique, vous pouvez utiliser la méthode d'extension .Where() LINQ (si vous ciblez .NET Framework 3.5 ou version ultérieure) ou la méthode Array.FindAll() de .NET Framework 2.0. Considérez le code suivant :
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2 }; int numToRemove = 4; // LINQ numbers = numbers.Where(val => val != numToRemove).ToArray(); // 非LINQ numbers = Array.FindAll(numbers, isNotFour).ToArray(); bool isNotFour(int n) { return n != 4; }</code>
Si vous souhaitez supprimer uniquement la première instance de la valeur, vous pouvez à nouveau tirer parti de l'approche LINQ ou non-LINQ :
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 }; int numToRemove = 4; // LINQ int numIdx = Array.IndexOf(numbers, numToRemove); numbers = numbers.Where((val, idx) => idx != numIdx).ToArray(); // 非LINQ int numIdx = Array.IndexOf(numbers, numToRemove); List<int> tmp = new List<int>(numbers); tmp.RemoveAt(numIdx); numbers = tmp.ToArray();</code>
En résumé, bien que les tableaux fournissent un stockage et une récupération efficaces des éléments, ils ont une flexibilité limitée dans la manipulation des éléments, ce qui rend les méthodes telles que RemoveAt() inadaptées. Au lieu de cela, la méthode décrite ci-dessus fournit une alternative efficace pour supprimer des valeurs d'un tableau.
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!