私はブール値が92のブール値リストを持っています。リストを文字列に変換したいのですが、私は8ブール(ビット)をとり、バイト(8ビット) ASCIIを使用してバイト値をcharに変換し、文字列にcharを追加します。しかし、2時間以上のgoogeling後、運がないatm。私はリストをバイトリストに変換しようとしましたが、どちらもうまくいきません^^。誰もがStringに&デコードブールリストをコーディングする方法について、より良い提案を持っている場合リストを変換する<boolean>を文字列に
は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);
PS? (私はブールリストを文字列で、1と90のリストではなく文字列で共有したいからです)
EDIT:今すぐ動作しました! TY
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)
を支援するためのすべての私は、後に、すべてのヘルプのためのTY再びencoding32に見えるでしょう:)、それはそのようなループ内で文字列を連結するには悪いアイデアだと起動するには
あなたがあなたの文字列が –
のようにそれはあなたがで終わるしたいのか明確ではありません見てみたいかについて、より具体的にする必要があります。ビットのasciiエンコードで、ブール値に戻すことができる文字列ですか? – jlew
'Encoding.Default.GetBytes'はあなたが思っていることをしません。この質問を参照してください:http://stackoverflow.com/questions/2989695/how-to-convert-a-string-of-bits-to-byte-array –