2012-12-19 74 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