C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でBitArrayの要素を配列にコピーする方法

C#でBitArrayの要素を配列にコピーするには、CopyToメソッドを使用します。このメソッドは、BitArrayのすべての要素を、指定したインデックス位置から対象の配列へコピーします。

CopyToメソッドの基本的な使い方

以下は、BitArrayの要素をbool型の配列にコピーするサンプルコードです。

例1:基本例

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      // 2要素のBitArrayを作成
      BitArray arr = new BitArray(2);
      arr[0] = false;
      arr[1] = true;

      Console.WriteLine("BitArrayの要素...");
      foreach (bool res in arr){
         Console.WriteLine(res);
      }

      // コピー先の配列を用意
      bool[] boolArr = new bool[2];
      boolArr[0] = true;
      boolArr[1] = false;

      // インデックス0から配列へコピー
      arr.CopyTo(boolArr, 0);

      Console.WriteLine("\n配列の内容...");
      foreach(Object obj in boolArr){
         Console.WriteLine(obj);
      }
   }
}

出力結果

BitArrayの要素...
False
True
配列の内容...
False
True

上記の出力からわかるように、元の配列に入っていた値(true、false)が、BitArrayの内容(false、true)で上書きされています。つまり、CopyToメソッドは指定したインデックス以降の既存の値を置き換えます。

例2:コピー先の配列が大きい場合

次に、5つの要素を持つBitArrayを、10個の要素を持つ配列にコピーする例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      // 5要素のBitArrayを作成
      BitArray arr = new BitArray(5);
      arr[0] = false;
      arr[1] = true;
      arr[2] = false;
      arr[3] = true;
      arr[4] = true;

      Console.WriteLine("BitArrayの要素...");
      foreach (bool res in arr){
         Console.WriteLine(res);
      }

      // 要素数10のコピー先配列を用意
      bool[] boolArr = new bool[10];
      boolArr[0] = true;
      boolArr[1] = false;

      // インデックス0から配列へコピー
      arr.CopyTo(boolArr, 0);

      Console.WriteLine("\n配列の内容...");
      foreach(Object obj in boolArr){
         Console.WriteLine(obj);
      }
   }
}

出力結果

BitArrayの要素...
False
True
False
True
True

配列の内容...
False
True
False
True
True
False
False
False
False
False

ポイントのまとめ

  • CopyTo(Array, int)メソッドを使うと、BitArrayの要素を指定したインデックスから配列へコピーできます。
  • コピー先の配列がBitArrayより大きい場合、余分な部分は元の値(初期値false)のまま維持されます。
  • コピー先の配列サイズが不足している場合は、ArgumentExceptionArgumentOutOfRangeExceptionなどの例外がスローされる可能性があるため、事前に十分なサイズを確保しておきましょう。
  • コピー先の配列型はbool型のほか、byte型やint型の配列も使用可能です。
  1. C#のジャグ配列の要素の型とは?参照型としてnullで初期化される仕組みを解説

    C#におけるジャグ配列(Jagged Array)とは、「配列の配列」のことです。そのため、ジャグ配列の各要素は参照型であり、宣言した直後の状態では null に初期化されるという特徴があります。つまり、ジャグ配列自体は1つの配列ですが、その各要素がさらに別の配列への参照を保持する構造になっています。この性質により、内側の配列ごとに異なる長さを持たせることができるのが大きなメリットです。ジャグ配列の宣言方法まず、ジャグ配列を宣言します。以下のように、角括弧を2つ重ねて記述します。int[][] marks;ジャグ配列の初期化方法次に、宣言したジャグ配列を初期化します。ここでは、5つの整数型配列

  2. C#で配列の要素にアクセスする方法を解説

    C#では、配列の要素にアクセスする際、インデックス(添字)を指定します。配列のインデックスは0から始まるため、最初の要素は「0番目」、3番目の要素は「2番目」としてアクセスすることに注意しましょう。 1. 配列の定義と初期化 まず、配列を定義して初期化します。以下は3つの整数値を持つint型配列の例です。 int[] p = new int[3] {99, 92, 95}; 2. 配列の全要素を表示する forループを使えば、配列内のすべての要素を順番に表示できます。ループ変数をインデックスとして利用し、各要素へアクセスします。 for (j = 0; j < 3; j++ ) {