-1

値 0 と 1 のみを含む配列が必要です。これでbool[]十分でしょうか? それとももっと軽いものはありますか?

編集:

メモリの制約はありませんが、その配列が作成され、オンラインで常に渡され、大きなファイルがその配列と同時に渡されます。大きなファイルが遅延しないように最大限の最適化が必要です

4

4 に答える 4

2

bool はおそらく最善の方法ではありません。持っている数によって異なります。

bool は 1 ビットですが、メモリ内に 1 バイトが必要であることを認識することが重要です。

一方、BitArray はこれを処理し、時間効率はわずかに低下しますが、スペース効率が向上します。 http://msdn.microsoft.com/en-us/library/system.collections.bitarray.aspx

制約に依存します。制約のある環境でない場合は、bool 配列で問題なく動作します。

于 2012-09-07T10:35:38.560 に答える
1

ブール配列で十分です。0「false」を、「true」を と見なすことができます1

于 2012-09-07T10:34:26.973 に答える
1

と のシーケンスであるBitArrayが必要な場合があり 1ます0

于 2012-09-07T10:35:03.630 に答える
0

bool[]あなたの0と1の数字が実際には単なる「フラグ」であり、実数ではない場合。

属性でを使用するEnumことは別のオプションです。FlagsこれによりIntention Revealing Name、両方のブール値にを設定できます。

[Flags()]
public enum TheFlags
{
    NoneSet = 0,
    FirstSet = 1,
    SecondSet = 2
}

次に、「First」が次のように設定されているかどうかを確認できます。

TheFlags flags = TheFlags.FirstSet;
if (flags.HasFlag(TheFlags.FirstSet))
    Console.WriteLine("First flag is set!");
于 2012-09-07T10:40:40.150 に答える