"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment implémenter efficacement le découpage du tableau en C #?

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

Publié le 2025-03-25
Parcourir:720

How to Efficiently Implement Array Slicing in C#?

Mastering Array Sinsirant en C #

C # offre des méthodes efficaces pour extraire des parties des tableaux d'octets, un processus appelé tranchage de tableau. Cette technique évite la copie des données inutile, l'amélioration des performances.

Implémentation de découpage du tableau avec ArraySegment

La classe ArraySegment fournit un moyen léger de représenter une partie d'un tableau. Il est idéal pour trancher sans créer un nouveau tableau, conservant ainsi la mémoire.

byte[] foo = new byte[4096];
var slice = new ArraySegment(foo, 0, 40);

cela crée tranche , représentant les 40 premiers octets de foo .

itération avec ienumerable

pour itérer dans le tableau tranché, convertir le arraysegment en un ienumerable en utilisant le asenuableable () d'extension (disponible dans .net 3.5 et plus tard):

IEnumerable sliceAsEnumerable = slice.AsEnumerable();

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

Slication basé sur Linq

Alternativement, la méthode de linq prends () offre un moyen concis pour obtenir le même résultat:

IEnumerable slicedBytes = foo.Take(40);

cela donne également un ienumerable contenant les 40 premiers octets de foo .

Résumé

C # Fournit le tranchage de tableau flexible via arraysegment pour l'efficacité de la mémoire et pour le 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ù la manipulation efficace des octets est cruciale.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3