Domanda

Qualcuno potrebbe dirmi come posso convertire byte[] in ArrayList utilizzando C# sotto Windows Mobile?

Modifica successiva:

  1. sarebbe come avere un ArrayList contenente istanze di un tipo personalizzato.Questo elenco va a un database (in un BLOB) come un array di byte (la conversione viene eseguita dall'API del database);Quello che voglio è ripristinare byte[] in ArrayList;

  2. .NET CF non fornisce BinaryFormatter;

È stato utile?

Soluzione

Tutti gli array ereditano da ICollection, quindi puoi semplicemente usare

ArrayList list = new ArrayList(bytearray);

anche se vorrei usare l'Elenco generico < byte > me stesso usando lo stesso metodo, in quanto impedisce il boxing di ciascun valore di byte nella matrice. Sebbene le matrici non ereditino staticamente l'IList generico per il rispettivo tipo, il CLR aggiunge implementazioni pertinenti a ciascuna istanza di array in fase di esecuzione (vedere la Nota importante qui )

Altri suggerimenti

Non puoi semplicemente farlo?

ArrayList list = new ArrayList(byteArray);

ArrayList non è tipizzato e deve essere utilizzato solo per compatibilità.

Ti suggerisco di usare un Elenco < byte > ;:

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

Modifica: se l'API del database esegue la conversione, non dovrebbe fornire un modo per deserializzare? Prova a utilizzare Reflector per scoprire come funziona la conversione.

Sembra che il CF non supporti il ​​file BinaryFormatter.Controlli il componente che invia i dati binari?Non puoi trasformare i dati in Xml in quel componente?In caso contrario, dai un'occhiata a Formattatore compatto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top