Я реализую библиотеку, в которой я широко использую класс .Net BitArray и нуждаюсь в эквиваленте метода Java BitSet.Cardinality (), то есть метода, который возвращает количество установленных битов. Я думал реализовать его как метод расширения для класса BitArray. Тривиальная реализация состоит в том, чтобы перебирать и подсчитывать установленные биты (как показано ниже), но мне нужна была более быстрая реализация, поскольку я выполнял бы тысячи операций с наборами и подсчитывал ответ. Есть ли более быстрый способ, чем в приведенном ниже примере?
count = 0;
for (int i = 0; i < mybitarray.Length; i++)
{
if (mybitarray [i])
count++;
}