Maison > développement back-end > C++ > Comment implémenter efficacement le découpage de tableau en C# ?

Comment implémenter efficacement le découpage de tableau en C# ?

Barbara Streisand
Libérer: 2025-01-14 20:18:50
original
143 Les gens l'ont consulté

How to Efficiently Implement Array Slicing in C#?

Maîtriser le découpage de tableaux en C#

C# propose des méthodes efficaces pour extraire des parties de tableaux d'octets, un processus connu sous le nom de découpage de tableau. Cette technique évite la copie inutile des données, améliorant ainsi les performances.

Implémentation du découpage de tableau avec ArraySegment<T>

La classe ArraySegment<T> fournit un moyen léger de représenter une partie d'un tableau. C'est idéal pour découper sans créer de nouveau tableau, économisant ainsi la mémoire.

<code class="language-csharp">byte[] foo = new byte[4096];
var slice = new ArraySegment<byte>(foo, 0, 40);</code>
Copier après la connexion

Cela crée slice, représentant les 40 premiers octets de foo.

Itérer avec IEnumerable<byte>

Pour parcourir le tableau découpé, convertissez le ArraySegment<byte> en IEnumerable<byte> à l'aide de la méthode d'extension AsEnumerable() (disponible dans .NET 3.5 et versions ultérieures) :

<code class="language-csharp">IEnumerable<byte> sliceAsEnumerable = slice.AsEnumerable();</code>
Copier après la connexion

sliceAsEnumerable permet désormais une itération facile sur les octets sélectionnés.

Découpage basé sur LINQ

Alternativement, la méthode Take() de LINQ offre une manière concise d'obtenir le même résultat :

<code class="language-csharp">IEnumerable<byte> slicedBytes = foo.Take(40);</code>
Copier après la connexion

Cela donne également un IEnumerable<byte> contenant les 40 premiers octets de foo.

Résumé

C# fournit un découpage de tableau flexible via ArraySegment<T> pour l'efficacité de la mémoire et Take() de LINQ pour un code concis. Les deux sont des outils précieux pour gérer les segments de tableau, en particulier dans des applications telles que la programmation réseau où une manipulation efficace des octets est cruciale.

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