Tengo una lista booleana con 92 booleanos, quiero que la lista se convierta en una cadena, pensé que tomaría 8 booleanos (bits) y los pondría en un byte (8 bits) y luego usa el ASCII para convertir el valor del byte en un char y luego agrega los caracteres a una cadena. Sin embargo, después de googeling por más de 2 horas, no hay suerte atm. Traté de convertir la lista a una lista de bytes, pero tampoco funcionó ^^.Convertir la lista <boolean> a la Cadena
String strbyte = null;
for (int x = 0; x != tmpboolist.Count; x++) //tmpboolist is the 90+- boolean list
{
//this loop checks for true then puts a 1 or a 0 in the string(strbyte)
if (tmpboolist[x])
{
strbyte = strbyte + '1';
}
else
{
strbyte = strbyte + '0';
}
}
//here I try to convert the string to a byte list but no success
//no success because the testbytearray has the SAME size as the
//tmpboolist(but it should have less since 8 booleans should be 1 Byte)
//however all the 'Bytes' are 48 & 49 (which is 1 and 0 according to
//http://www.asciitable.com/)
Byte[] testbytearray = Encoding.Default.GetBytes(strbyte);
PD Si alguien tiene una idea mejor sobre cómo codificar & decodificar una lista de Boole a una cadena? (Porque quiero que la gente comparta su lista booleana con una cadena en lugar de una lista de 90 1 y 0.)
EDITAR: lo tengo funcionando ahora! ty todo por ayudar a
string text = new string(tmpboolist.Select(x => x ? '1' : '0').ToArray());
byte[] bytes = getBitwiseByteArray(text); //http://stackoverflow.com/a/6756231/1184013
String Arraycode = Convert.ToBase64String(bytes);
System.Windows.MessageBox.Show(Arraycode);
//first it makes a string out of the boolean list then it uses the converter to make it an Byte[](array), then we use the base64 encoding to make the byte[] a String.(that can be decoded later)
Voy a mirar en los encoding32 más tarde, Ty por toda la ayuda de nuevo :)
que necesita para ser más específicos en lo que usted quiere que su cadena se vea como –
No está claro lo que se quiere terminar con. ¿Una cadena que es una codificación ascii de bits, que luego se puede volver a convertir en booleanos? – jlew
'Encoding.Default.GetBytes' no hace lo que crees que hace. Consulte esta pregunta: http://stackoverflow.com/questions/2989695/how-to-convert-a-string-of-bits-to-byte-array –