Maison >développement back-end >C++ >Comment puis-je optimiser la concaténation de tableaux en C# pour de meilleures performances ?

Comment puis-je optimiser la concaténation de tableaux en C# pour de meilleures performances ?

DDD
DDDoriginal
2025-01-17 06:42:10617parcourir

How Can I Optimize Array Concatenation in C# for Better Performance?

Améliorer les performances de concaténation de tableaux C# : une alternative supérieure à la concaténation

La méthode Concat de C# fournit une solution simple pour joindre des tableaux. Cependant, ses performances peuvent être sous-optimales lorsqu’il s’agit de grandes baies. Pour une efficacité considérablement améliorée dans la concaténation de tableaux, envisagez cette alternative :

<code class="language-csharp">int[] x = new int[] { 1, 2, 3 };
int[] y = new int[] { 4, 5 };

int[] z = new int[x.Length + y.Length];
Array.Copy(x, z, x.Length);
Array.Copy(y, 0, z, x.Length, y.Length);

Debug.Assert(z.SequenceEqual(new int[] { 1, 2, 3, 4, 5 }));</code>

Cette méthode alloue directement un nouveau tableau z de taille suffisante pour contenir à la fois x et y. Il exploite ensuite Array.Copy pour transférer efficacement les éléments de x et y dans z. Cela évite la création de tableaux intermédiaires, conduisant à une exécution plus rapide, en particulier avec des ensembles de données plus volumineux.

Considération importante : Bien que Concat reste adapté aux baies plus petites où les performances ne sont pas critiques, l'approche ci-dessus offre un avantage substantiel en termes de performances pour les scénarios impliquant de grandes baies.

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