在使用C#或Java等语言时,我正在考虑如何显示分页控件.
如果我想要以每页y块的形式显示x项,那么需要多少页?
我目前有一些粗略的谷歌代码..这有效,但我想换成枚举.
目前我需要一个字节来表示一些设置的位标志,
我目前有这个:
BitArray bitArray =new BitArray(new bool[] { true, true, false, false, false, false, false, false });
Run Code Online (Sandbox Code Playgroud)
用于排队..
new byte[] {ConvertToByte(bitArray)})
Run Code Online (Sandbox Code Playgroud)
使用此站点的ConvertToByte ...
private static byte ConvertToByte(BitArray bits) // http://stackoverflow.com/questions/560123/convert-from-bitarray-to-byte
{
if (bits.Count != 8)
{
throw new ArgumentException("incorrect number of bits");
}
byte[] bytes = new byte[1];
bits.CopyTo(bytes, 0);
return bytes[0];
}
Run Code Online (Sandbox Code Playgroud)
但是,当我触及时,我想使用枚举,所以我创建它:
[Flags]
public enum EventMessageTypes
{
None = 0,
aaa = 1,
bbb = 2,
ccc = 4,
ddd = 8,
eee = 16,
fff = …Run Code Online (Sandbox Code Playgroud) 简单的问题:考虑到bool(true,false)与位(1,0)相同,在C#中将8个bool转换为字节的正确方法是什么?
例子:
true,true,true,true,true,true,true,true == 11111111 == 255
true,false,false,false,false,false,false,false == 10000000 == 128
false,false,false,false,false,false,false,false == 00000000 == 0
以上是第一部分.我想创建一个扩展方法,如下所示:
public static byte[] ToByteArray(this bool[] bitArray)
{
// stuff here
return byteArray;
}
Run Code Online (Sandbox Code Playgroud)
结果必须是byteArray,其元素比bool数组少八倍.