c#将字符转换为布尔值列表

c#将字符转换为布尔值列表,c#,type-conversion,C#,Type Conversion,我需要将字符转换为位,并将其添加到myBuffer类型的list List myBuffer=。。。 字符符号='A'; 添加(…符号…); 有什么简单的方法吗?这个解决方案太复杂了吗?如果符号是字符串的单个字符 StringBuilder sb = new StringBuilder(); char symbol = "A"; foreach (byte b in Encoding.Unicode.GetBytes(symbol.ToString())) { sb.Append(C

我需要将字符转换为位,并将其添加到
myBuffer
类型的
list

List myBuffer=。。。
字符符号='A';
添加(…符号…);

有什么简单的方法吗?

这个解决方案太复杂了吗?如果符号是字符串的单个字符

StringBuilder sb = new StringBuilder();
char symbol = "A";
foreach (byte b in Encoding.Unicode.GetBytes(symbol.ToString()))
{
     sb.Append(Convert.ToString(b, 2));
}
string bits = sb.ToString();
List<bool> myBuffer= ...

for (int i = 0; i < bits .Length; i++)
{
     if (bits [i] == '0')
     {
          myBuffer.Add(false);
     }
     else if (bits [i] == '1')
     {
         myBuffer.Add(true);
     }
}
StringBuilder sb=新建StringBuilder();
char symbol=“A”;
foreach(Encoding.Unicode.GetBytes(symbol.ToString())中的字节b)
{
sb.追加(转换为字符串(b,2));
}
字符串位=sb.ToString();
列表myBuffer=。。。
for(int i=0;i
您可以获取二进制字符串(),然后应用
select
函数获取布尔值列表:

var result = Convert.ToString((byte)symbole, 2).PadLeft(8, '0').Select(bit => bit == '1').ToList();

我正在做哈夫曼压缩,需要转换“位”上的字符。在我的例子中,我使用布尔列表来表示位流,在达到某个位数后,我将它们转换为字节。我所说的位是指布尔列表中的元素,有一个BitArray类。如果我有一个程序,每个cicle都想在BitArray中添加一些东西,那么用它来代替bool列表,这将帮助您实现您想要的效果。首先,将字符转换为BitArray是一件奇怪的事情,所以讨论一种方法是否在某种抽象方式上更好(而不是一些具体的要求,如代码大小、执行时间、代码样式/1337)是困难的。添加一些上下文来解释为什么这是可行的可能会有所帮助。答案是否正确(代码看起来似乎合理,原始问题也是关于字符的,代码以字符串开头,但这并不重要)?您是否计划将其发布为问题的编辑?如果它是一个答案,请确保测试为肯定陈述而不是问题,否则删除并提问本身。
var result = Convert.ToString((byte)symbole, 2).PadLeft(8, '0').Select(bit => bit == '1').ToList();