C#でBitArrayのすべてのビットを指定した値に一括設定する方法
C#の BitArray クラスには、配列内のすべてのビットをまとめて指定した値に設定できる SetAll() メソッドが用意されています。引数に true を渡せば全ビットが true に、false を渡せば全ビットが false に一括で変更されます。
SetAll() メソッドの構文
public void SetAll(bool value);
例1:すべてのビットを true に設定する
まず、5つの要素を持つBitArrayを作成し、複数のビットを false に設定した後、SetAll(true) を呼び出して全ビットを true に変更する例を見てみましょう。
using System;
using System.Collections;
public class Demo {
public static void Main() {
BitArray arr = new BitArray(5);
arr[0] = false;
arr[1] = false;
arr[2] = false;
arr[3] = false;
Console.WriteLine("BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
arr.SetAll(true);
Console.WriteLine("
Updated BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
}
}出力
上記のコードを実行すると、次のような結果が表示されます。
BitArray... False False False False False Updated BitArray... True True True True True
例2:すべてのビットを false に設定する
次に、true と false が混在するBitArrayに対して SetAll(false) を呼び出し、全ビットを false にリセットする例です。
using System;
using System.Collections;
public class Demo {
public static void Main() {
BitArray arr = new BitArray(5);
arr[0] = true;
arr[1] = false;
arr[2] = true;
arr[3] = false;
Console.WriteLine("BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
arr.SetAll(false);
Console.WriteLine("
Updated BitArray...");
foreach(Object ob in arr) {
Console.WriteLine(ob);
}
}
}出力
実行結果は以下の通りです。
BitArray... True False True False False Updated BitArray... False False False False False
ポイントまとめ
- SetAll(bool value):BitArray内のすべてのビットを、引数で指定した値に一括設定します。
- 個々のビットだけを変更したい場合は、インデクサ(
arr[i])や Set(int index, bool value) メソッドを使用します。 - forループなどで1つずつ設定するよりも、SetAll() を使う方がコードが簡潔になり、処理の意図も明確になります。
-
C#のListDictionaryで指定したキーに関連付けられた値を取得・設定する方法
C#のListDictionaryでは、インデクサー(Itemプロパティ)を使うことで、指定したキーに関連付けられた値を簡単に取得したり、新しい値に更新したりできます。ListDictionaryはSystem.Collections.Specialized名前空間に属するコレクションで、要素数が少ない場合(目安として10項目程度まで)に高いパフォーマンスを発揮する特徴があります。以下のコード例では、キー「C」に関連付けられた値の取得と更新の両方を確認できます。例1:キーに関連付けられた値を取得するusing System; using System.Collections; using Sy
-
C#で1次元配列の指定した位置の要素に値を設定する方法
C#では、配列の特定の位置にある要素へ値を代入するのは非常に簡単です。配列名[インデックス] = 値; という形式で記述するだけで、任意の要素を上書きできます。ただし、C#の配列インデックスは0から始まるため、位置の数え方には注意が必要です。 配列の宣言と初期化 まず、対象となる配列を用意します。 int[] p = new int[] {55, 66, 88, 99, 111, 122, 133}; 指定した位置の要素に値を設定する たとえば、インデックス2(3番目の要素)に新しい値「77」を設定したい場合は、次のように書きます。 p[2] = 77; これだけで、元の値「88」が「77」に