С перечислением под .net самым большим числом, которое вы можете использовать, является ULong.
Это означает максимум 64 флага.
Какая альтернатива, если вам нужно больше 64 флагов?
Edit
Извините, я забыл добавить эту альтернативу, которая по-прежнему будет работать с побитовыми операциями, по крайней мере, такими; и и или.
используя предложение Джош Эйнштейна, я придумал это, имеет ли смысл?
class bitArrayFlag
{
private const int flagSize = 255; //allow X numbers of flags
public BitArray flag1;
public BitArray flag2;
public BitArray flagN;
public bitArrayFlag()
{
int flagPos = 0;
bool[] flagBit = new bool[flagSize];
flagBit[flagPos] = true;
flag1 = new BitArray(flagBit);
flagBit[flagPos] = false;
flagPos += 1;
flagBit[flagPos] = true;
flag2 = new BitArray(flagBit);
//...
//...
//...
flagBit[flagPos] = false;
flagPos += 1;
flagBit[flagPos] = true;
flagN = new BitArray(flagBit);
}
}