Estoy leyendo cadenas desde un archivo binario. Cada cadena tiene un final nulo. La codificación es UTF-8. En Python, simplemente leo un byte, compruebo si es 0, lo anexo a una matriz de bytes y continúo leyendo bytes hasta que veo un 0. Luego, convierto una matriz de bytes en una cadena y sigo adelante. Todas las cadenas fueron leídas correctamente.Lectura de una cadena terminada en nulo
¿Cómo puedo leer esto en C#? No creo que tenga el lujo de simplemente agregar bytes a una matriz, ya que las matrices son de tamaño fijo.
Por qué no utilizar una lista? –
¿Por qué no solo los agrega a una cadena como caracteres? – zellio
Esto funcionaría, pero usará más memoria de la que pensaría. Las cadenas de C# son inmutables, por lo que cada vez que modifique una, se debe crear una nueva. La cantidad de memoria adicional probablemente no sea un problema en la mayoría de los casos, pero la mejor manera es probablemente la sugerencia de Mike, con un tamaño inicial razonable. La lista sigue siendo un envoltorio alrededor de una matriz, que crea matrices más grandes cuando es necesario. –
TheEvilPenguin