Se pueden utilizar los métodos Select
y ToArray
para convertir una matriz a otra:
oneArray = anotherArray.Select(n => {
// the conversion of one item from one type to another goes here
}).ToArray();
convertir de doble byte:
byteArray = doubleArray.Select(n => {
return Convert.ToByte(n);
}).ToArray();
convertir de bytes para duplicar se simplemente cambie la parte de conversión:
doubleArray = byteArray.Select(n => {
return Convert.ToDouble(n);
}).ToArray();
Si desea convertir cada doble a una representación de varios bytes, puede utilizar el método SelectMany
y la clase BitConverter
. Como cada doble dará como resultado una matriz de bytes, el método SelectMany
los aplanará en un único resultado.
byteArray = doubleArray.SelectMany(n => {
return BitConverter.GetBytes(n);
}).ToArray();
Para convertir de nuevo a los dobles, lo que se necesita para recorrer los bytes ocho a la vez:
doubleArray = Enumerable.Range(0, byteArray.Length/8).Select(i => {
return BitConverter.ToDouble(byteArray, i * 8);
}).ToArray();
¿Quieres la conversión del valor (es decir. '10.0' -> 10) o los ocho bytes de la representación de la máquina subyacente (p. Ej., Para la serialización)? – Richard
¿De qué tipo de conversión estamos hablando aquí? ¿Desea tomar el doble correspondiente y "lanzarlo" a un tipo integral para obtener el valor de byte? ¿O desea obtener la representación de bytes de cada uno de los valores dobles? Necesitas _clarificar_. –
intención es utilizar la función BinaryWriter.Write(). Pero esto solo acepta bytes. Quiero obtener la representación de bytes de cada uno de los valores dobles? – Raghaav