Question

Quelqu'un pourrait-il me dire comment convertir des octets [] en ArrayList à l'aide de C # sous Windows Mobile?

Modifier ultérieurement:

  1. cela ressemblerait à avoir un ArrayList contenant des instances d'un type personnalisé. Cette liste va dans une base de données (dans un blob) sous forme de tableau d'octets (la conversion est effectuée par l'API de base de données); Ce que je veux, c’est de convertir l’octet [] en ArrayList;

  2. .NET CF ne fournit pas le format binaire;

Était-ce utile?

La solution

Tous les tableaux héritent de ICollection. Vous pouvez donc simplement utiliser

.
ArrayList list = new ArrayList(bytearray);

bien que j'utiliserais la liste générique < byte > moi-même en utilisant la même méthode, car cela empêche la mise en boîte de chaque valeur d'octet du tableau. Bien que les tableaux n'héritent pas de manière statique de la liste IList générique pour le type respectif, le CLR ajoute des implémentations pertinentes à chaque instance de tableau au moment de l'exécution (voir la remarque importante ici )

Autres conseils

Ne pouvez-vous pas simplement faire cela?

ArrayList list = new ArrayList(byteArray);

ArrayList n'est pas typé et ne doit être utilisé que pour des raisons de compatibilité.

Je vous suggère d'utiliser une liste < octet >:

.
var list = new List<byte>(byteArray);

Modifier: si la conversion est effectuée par l'API de base de données, ne devrait-elle pas fournir un moyen de désérialiser? Essayez d’utiliser Reflector pour savoir comment la conversion est effectuée.

Il semble que les FC ne soutiennent pas le BinaryFormatter. Contrôlez-vous le composant qui envoie ces données binaires? Ne pouvez-vous pas transformer les données en XML dans ce composant? Sinon, consultez le Formateur compact

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top