2011-03-22 4 views
0

Dans .NET 2.0 existe-t-il une API qui me permet de convertir rapidement une liste d'entiers en un tableau d'octets (List<int> à byte[])? Le tableau d'octets résultant doit être la représentation binaire au format binaire de la séquence de valeurs entières, de sorte que la sérialisation de l'instance List à l'aide de la sérialisation par défaut du type .NET ne fonctionnerait pas.Convertir la liste <int> en byte []

+0

Sérialisation dans quel contexte? Automatiquement dans le cadre de la sérialisation binaire/sérialisation XML/quoi d'autre, ou manuellement? –

+0

Aussi, avez-vous considéré l'endianisme? –

+0

@Ondrej endianess n'a pas d'importance dans mon cas. Tout ce qui importe est que le tableau d'octets contienne (seulement) tous les bits des entiers dans le même ordre. – bitbonk

Répondre

3
List<int> intList = new List<int>(); 
int[] intArray = intList.ToArray(); 
byte[] byteArray = new byte[intArray.Length*4]; 
Buffer.BlockCopy(intArray, 0, byteArray, 0, byteArray.Length); 

Buffer.BlockCopy utilise les adresses mémoire brutes, pas d'index de tableau, pour copier les données du tableau. Cela ne fonctionne que sur les tableaux de primitives.

Questions connexes