Maison >développement back-end >C++ >Comment puis-je supprimer efficacement des éléments des tableaux C# ?

Comment puis-je supprimer efficacement des éléments des tableaux C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-20 20:37:10770parcourir

How Can I Efficiently Remove Elements from C# Arrays?

Méthode efficace pour supprimer des éléments de tableau en C#

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 :

Supprimer des éléments par valeur

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>

Supprimer la première instance de la valeur

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!

Déclaration:
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