C# 将位数组强制转换为位向量32
是否可以将位数组转换为位向量32而无需执行以下操作: 位数组>整数>位向量32(整数) 这显然不起作用:C# 将位数组强制转换为位向量32,c#,C#,是否可以将位数组转换为位向量32而无需执行以下操作: 位数组>整数>位向量32(整数) 这显然不起作用: var bitArray = new BitArray(32); bitArray[1] = true; var bitVector = new BitVector32(0); for(var c = 0; c < bitArray.Length; c++) { bitVector[c] = bitArray[c]; } var位数组=新位数组(32); 位数组[1]=真;
var bitArray = new BitArray(32);
bitArray[1] = true;
var bitVector = new BitVector32(0);
for(var c = 0; c < bitArray.Length; c++)
{
bitVector[c] = bitArray[c];
}
var位数组=新位数组(32);
位数组[1]=真;
var bitVector=新的位向量32(0);
for(var c=0;c
我知道BitVector32是一种结构,因此应该是不可变的。这是否意味着我必须首先确定整数才能执行“强制转换/转换”
我知道BitVector32是一种结构,因此应该是不可变的
这是一个常见的神话。类可以是不可变的,结构可以是可变的BitVectr32实际上是一个可变结构。代码中真正的问题是,您假设BitVector32
索引器与BitArray
(或数组、列表等)索引器匹配。但是,BitVector32
索引器声明如下
public bool this[int bit] { get; set; }
美国呢
获取或设置指定的掩码所指示的位标志的状态
所以工作代码是这样的
var bitVector = new BitVector32(0);
for (var c = 0; c < bitArray.Length; c++)
bitVector[1 << c] = bitArray[c];
var bitVector=新的位向量32(0);
for(var c=0;c bitVector[1谢谢。老实说,我看了一些掩码示例,它们没有意义。但是,您的示例非常棒!