2012-12-19 34 views
4

什么是像“10101011101010”直接字符串加载到一个新的位阵列最聪明的方法是什么? (不是一个字节数组加载(0/1)串到位数组

(该位应保持在相同的顺序在列表中。)

+0

BitArray或ByteArray? –

+0

BitArray。谢谢 – Pam

回答

7

你可以用LINQ做到这一点:

var res = new BitArray(str.Select(c => c == '1').ToArray()); 
+0

这个到目前为止效果最好(Soner提出了相同的想法)。我接受这一点,但让我知道任何新的想法。谢谢dasblinkenlight。 – Pam

0

如何像这样:

string bits = "101010101010"; 
byte[] bytes = bits.ToCharArray().Select(c => (byte)c == '0' ? 0 : 1).ToArray(); 

可能工作...

byte[] bytes = bits.Select(c => (byte)c == '0' ? 0 : 1).ToArray(); 
+0

我们需要一个BitArray – Pam

+0

对不起。在这种情况下,请参阅其他优秀答案之一(或将字节数组传递给BitArray类的构造函数)。 – samjudson

+0

谢谢samjudson – Pam

2

你可以在这种情况下使用LINQ;

var yourbitarray = new BitArray(yourstring.Select(s => s == '1').ToArray()); 
+0

谢谢Soner – Pam