Tengo que aumentar el tamaño de la matriz byte[]
en tiempo de ejecución.
¿Cómo aumentar el tamaño de matriz byte [] en tiempo de ejecución?¿Cómo aumentar el tamaño de bytes [] en el tiempo de ejecución?
Respuesta
¿Por qué nadie parece saber Array.Resize:
Array.Resize(ref myArray, 1024);
simple como el pastel.
PS: según un comentario en MSDN, aparentemente esto faltaba en la documentación de MSDN en 3.0; esto podría explicar su popular ignición
MSDN Link http://msdn.microsoft.com/en-us/library/bb348051.aspx –
@Brian: gracias, he copiado el enlace incorrecto en la respuesta, sry – sehe
Tenga en cuenta que esto crea una nueva matriz, si tener una referencia a la matriz anterior en alguna parte, esa matriz no se actualizará. –
Si tiene que aumentarlo, ¿por qué no empezar con un List<byte>
en primer lugar?
Usted puede asignar una nueva matriz y copiar los bytes de nuevo con Array.Copy(..)
byte[] oldArr = new byte[1024];
byte[] newArr = new byte[oldArr.Length * 2];
System.Array.Copy(oldArr, newArr, oldArr.Length);
oldArr = newArr;
Usted no puede: matrices se fijan tamaño.
O bien utilizar una colección re-considerable (por ejemplo. List<byte>
) o crear una nueva matriz más grande y copiar el contenido de la matriz original sobre.
Incluso Array.Resize no modifica el objeto matriz pasada: se crea una nueva matriz y copia los elementos. Simplemente te ahorra codificación esto tu mismo. La diferencia es importante: otras referencias a la matriz anterior seguirán viendo la matriz anterior.
Una matriz es de tamaño fijo y no se puede cambiar dinámicamente en tiempo de ejecución.
Su única opción es crear una nueva matriz del tamaño deseado y copiar todos los bytes de la matriz anterior a la nueva.
¿Pero por qué torturarte con esto en vez de usar List<byte>
y simplemente agregar o eliminar elementos a voluntad?
- 1. Android: ¿cómo aumentar el tamaño del montón en tiempo de ejecución?
- 2. ¿Cómo cambias el tamaño de Fancybox en tiempo de ejecución?
- 3. MSTest: cómo aumentar el tiempo de prueba
- 4. ¿Cómo aumentar el tamaño de la pila de Java?
- 5. Cómo aumentar el tiempo en 1 hora
- 6. ¿Aumentar el tamaño de letra en Firebug?
- 7. ¿Cómo saber el tamaño de la cadena en bytes?
- 8. ¿Cómo aumentar el tamaño máximo de la agrupación en ActiveRecord?
- 9. ¿Cómo puedo aumentar el tamaño de la pila en Python?
- 10. Cómo aumentar el tamaño de fuente en javascript alert()
- 11. Android: aumentar el tamaño de la pila de llamadas
- 12. Tamaño de un objeto en tiempo de ejecución
- 13. ¿Cómo se puede aumentar el tiempo de espera en Linq2Entities?
- 14. ¿Aumentar el tamaño de letra en la leyenda de octava?
- 15. cómo aumentar el tamaño de acumulación de JVM
- 16. WCF Service, ¿cómo aumentar el tiempo de espera?
- 17. cómo aumentar el tamaño de la hormiga permgen?
- 18. ¿Cómo puedo aumentar el tamaño de la pila con runhaskell?
- 19. ¿Cómo aumentar el tamaño de la pila scala?
- 20. JAVA_OPTS para aumentar el tamaño del montón
- 21. WPF - cambie el tamaño de fuente global en el tiempo de ejecución
- 22. ¿Cómo aumentar el tamaño de la historia del portapapeles PHPStorm?
- 23. ¿cómo puedo aumentar el tamaño de este SVG?
- 24. ¿Cómo declarar el tamaño de una matriz en tiempo de ejecución en C?
- 25. Cómo cambiar el tamaño del control de usuario en WPF en tiempo de ejecución
- 26. Cómo aumentar el tamaño del texto en SoapUI
- 27. Aumentar el tamaño (altura) del área de título en ColorBox
- 28. CLR Debugger, ASP.NET: ¿cómo aumentar el tiempo de espera?
- 29. Aumentar tamaño de pila en Windows (GCC)
- 30. aumentar el tiempo de espera del servidor en eclipse
posible duplicado de [cambiar el tamaño de la matriz] (http://stackoverflow.com/questions/4840802/change-array-size) – nawfal