Cómo convertir una matriz de bytes en una cadena

He creado una matriz de bytes con dos cadenas. Cómo puedo convertir una matriz de bytes en una cadena?

var binWriter = new BinaryWriter(new MemoryStream());
binWriter.Write("value1");
binWriter.Write("value2");
binWriter.Seek(0, SeekOrigin.Begin);

byte[] result = reader.ReadBytes((int)binWriter.BaseStream.Length);

Quiero convertir el resultado en una cadena. Podría hacerlo usando BinaryReader, pero no puedo usar BinaryReader (no está soportado).

Solución

Dependiendo de la codificación que desee utilizar:

var str = System.Text.Encoding.Default.GetString(result);
Comentarios (8)

Asumiendo que está utilizando la codificación UTF-8:

string convert = "This is the string to be converted";

// From string to byte array
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(convert);

// From byte array to string
string s = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length);
Comentarios (4)

Puede hacerlo sin tener que lidiar con la codificación utilizando BlockCopy:

char[] chars = new char[bytes.Length / sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
string str = new string(chars);
Comentarios (5)