値 0 と 1 のみを含む配列が必要です。これでbool[]
十分でしょうか? それとももっと軽いものはありますか?
編集:
メモリの制約はありませんが、その配列が作成され、オンラインで常に渡され、大きなファイルがその配列と同時に渡されます。大きなファイルが遅延しないように最大限の最適化が必要です
値 0 と 1 のみを含む配列が必要です。これでbool[]
十分でしょうか? それとももっと軽いものはありますか?
編集:
メモリの制約はありませんが、その配列が作成され、オンラインで常に渡され、大きなファイルがその配列と同時に渡されます。大きなファイルが遅延しないように最大限の最適化が必要です
bool はおそらく最善の方法ではありません。持っている数によって異なります。
bool は 1 ビットですが、メモリ内に 1 バイトが必要であることを認識することが重要です。
一方、BitArray はこれを処理し、時間効率はわずかに低下しますが、スペース効率が向上します。 http://msdn.microsoft.com/en-us/library/system.collections.bitarray.aspx
制約に依存します。制約のある環境でない場合は、bool 配列で問題なく動作します。
ブール配列で十分です。0
「false」を、「true」を と見なすことができます1
。
と のシーケンスであるBitArrayが必要な場合があり 1
ます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!");