How can I convert an int to an array of bool?

You can use the BitArray.

var bools = new BitArray(new int[] { yourInt }).Cast<bool>().ToArray();

Int32 number = 10;

var array = Convert.ToString(number, 2).Select(s => s.Equals('1')).ToArray();

--Edit--

Using extension method:

public static class Int32Extensions
{
    public static Boolean[] ToBooleanArray(this Int32 i)
    {
        return Convert.ToString(i, 2 /*for binary*/).Select(s => s.Equals('1')).ToArray();
    }
}

Usage:

var boolArray = number.ToBooleanArray();

An int should map nicely to BitVector32 (or BitArray)

int i = 4;
var bv = new BitVector32(i);
bool x = bv[0], y = bv[1], z = bv[2]; // example access via indexer

However, personally I'd just use shifts (>> etc) and keep it as an int. The bool[] would be much bigger

Tags:

C#