Maison > développement back-end > C++ > Comment puis-je découper un tableau en C# ?

Comment puis-je découper un tableau en C# ?

Linda Hamilton
Libérer: 2025-01-14 20:15:48
original
420 Les gens l'ont consulté

How Can I Slice an Array in C#?

Découpage de tableaux en C#

C# contrairement à Perl peut utiliser directement la syntaxe @bar = @foo[0..40]; pour découper des tableaux. Il existe cependant quelques alternatives pour obtenir des fonctionnalités similaires.

ArraySegment

Pour une option légère qui évite de copier le tableau d'origine, pensez à utiliser ArraySegment<T>. Il représente une partie contiguë d'un tableau sans copier les éléments sous-jacents :

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

segment contient désormais les 41 premiers octets du tableau foo d'origine. Vous pouvez accéder à son contenu via les attributs Array et Offset, ou l'utiliser directement dans une expression LINQ.

LINQ Sauter et prendre

Si vous préférez LINQ, vous pouvez utiliser les méthodes Skip et Take pour implémenter le découpage :

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

slice renverra les 41 premiers octets du tableau foo sous la forme d'une séquence IEnumerable<byte>.

Fonction de découpage de tableau personnalisée

Si ni ArraySegment ni LINQ ne répondent à vos besoins, vous pouvez créer une fonction de découpage de tableau personnalisée à l'aide de plages d'index :

<code class="language-csharp">byte[] Slice(byte[] array, int startIndex, int length)
{
    byte[] slice = new byte[length];
    Array.Copy(array, startIndex, slice, 0, length);
    return slice;
}

byte[] slice = Slice(foo, 0, 41);</code>
Copier après la connexion

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