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