Comment faites-vous ? Étant donné un tableau d'octets :
byte[] foo = new byte[4096];
Comment puis-je obtenir les x premiers octets du tableau comme un tableau séparé ? (Plus précisément, j'en ai besoin comme un IEnumerable<byte>
)
Il s'agit de travailler avec Socket
s. Je pense que le moyen le plus simple serait le découpage en tableaux, similaire à la syntaxe de Perls :
@bar = @foo[0..40];
Ce qui renverrait les 41 premiers éléments dans le @bar
tableau. Y a-t-il quelque chose en C# qui m'échappe, ou y a-t-il autre chose que je devrais faire ?
LINQ est une option pour moi (.NET 3.5), si cela peut aider.
3 votes
Le découpage en tableaux est une proposition pour c# 7.2 github.com/dotnet/csharplang/issues/185
5 votes
C# 8.0 verra l'introduction du découpage en tableaux natif. Voir la réponse pour plus de détails
2 votes
Vous pourriez être intéressé par ArraySlice<T> qui implémente le découpage en tranches de tableaux avec une étape comme vue sur les données originales : github.com/henon/SliceAndDice