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
Libérer: 2025-01-20 20:37:10
original
767 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

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