我正在实现一个库,其中广泛使用了 .Net 中的 BitArray 类,并需要一个类似于 Java 的 BitSet.Cardinality() 方法的等效方法,即返回设置的位数的方法。我考虑将其实现为 BitArray 类的扩展方法。迭代和计算已设置的位(如下所示)是一种微不足道的实现,但是我想要更快的实现,因为我将执行成千上万次设置操作并计算答案。是否有比下面的示例更快的方法?
count = 0;
for (int i = 0; i < mybitarray.Length; i++)
{
if (mybitarray [i])
count++;
}