System.BitArrayは、IEnumerator.CurrentプロパティのObjectを返す非汎用IEnumerableのみを実装します。 BitArray上でforeachを実行していますか?たとえば、BitArrayを列挙するとボクシング/アンボクシングがたくさんありますか?
foreach (bool b in bitArray)
{
// ...
}
それぞれのビット値はどれですか?
リフレクタのbitarray列挙子を見ると、clevererではなくMoveNext()のすべての呼び出しで新しいビットマスクが実行されるようです。 BitArrayをより効率的に列挙する方法、または同じストレージ特性を持つBitArrayを置き換える方法はありますか? (リスト<ブール>などは、単一のビットではなく、ブールごとに1バイトを使用するので、8倍のスペースを使用します)