如何将布尔列表转换为int?

时间:2016-12-01 00:44:25

标签: c# list int boolean

如何将布尔列表转换为等于被解释为字节的布尔值的整数?

即。

public List<Boolean> MyList = new List<Boolean>();
MyList.Add(true);
MyList.Add(true);
MyList.Add(false);
MyList.Add(false);
MyList.Add(false);
MyList.Add(false);
MyList.Add(false);
MyList.Add(false);

这将返回3。

1 个答案:

答案 0 :(得分:3)

你不能,至少不能直接。

可以使用BitArray类(MSDN)将您的bool集合转换为位,然后从中获取一个数字:

BitArray bitField = new BitArray(MyList.ToArray()); //BitArray takes a bool[]
byte[] bytes = new byte[1];
bitField.CopyTo(bytes, 0);
return bytes[0];

BitArray来评估来自https://stackoverflow.com/a/560131/1783619

的转化价值

请注意,此技术也适用于大于8位的数字,但您需要使用BitConverterMSDN)从字节数组中获取值(而不仅仅是返回第一个)