Przekonwertować tablicę bajtów na tablicę bitów?

Przekonwertować tablicę bajtów na tablicę bitów?

Oczywisty sposób; używając konstruktora, który pobiera tablicę bajtów:

BitArray bits = new BitArray(arrayOfBytes);

To zależy od tego, co rozumiesz przez "tablicę bitów"... Jeśli masz na myśli instancję BitArray klasie, odpowiedź Guffy powinna działać dobrze.

Jeśli rzeczywiście potrzebujesz tablicy bitów, w postaci bool[] na przykład możesz zrobić coś takiego:

byte[] bytes = ...
bool[] bits = bytes.SelectMany(GetBits).ToArray();

...

IEnumerable<bool> GetBits(byte b)
{
    for(int i = 0; i < 8; i++)
    {
        yield return (b & 0x80) != 0;
        b *= 2;
    }
}

public static byte[] ToByteArray(this BitArray bits)
 {
    int numBytes = bits.Count / 8;
    if (bits.Count % 8 != 0) numBytes++;
    byte[] bytes = new byte[numBytes];
    int byteIndex = 0, bitIndex = 0;
    for (int i = 0; i < bits.Count; i++) {
        if (bits[i])
            bytes[byteIndex] |= (byte)(1 << (7 - bitIndex));
        bitIndex++;
        if (bitIndex == 8) {
            bitIndex = 0;
            byteIndex++;
        }
    }
    return bytes;
}