8

What is the smartest way to load a string like "10101011101010" directly into a new bit array? (not a byte array)

(The bits should remain in the same order as in the list.)

0

3 Answers 3

12

You can do it with LINQ:

var res = new BitArray(str.Select(c => c == '1').ToArray());
Sign up to request clarification or add additional context in comments.

1 Comment

This one so far works best (Soner came up with same idea). I am accepting this, but let me know about any new idea. Thank you dasblinkenlight.
4

You can use LINQ on this case like;

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

Comments

0

How about something like this:

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

Might work...

or

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

1 Comment

Sorry. See one of the other excellent answers in that case (or pass the byte array into the constructor of the BitArray class).

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.