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

C#でBitArrayのシャローコピー(浅いコピー)を作成する方法

BitArrayのシャローコピー(浅いコピー)を作成するには、Clone()メソッドを使用します。CloneメソッドはICloneableインターフェースで定義されており、呼び出し元のBitArrayと同じ長さ・同じ要素値を持つ新しいBitArrayインスタンスを返します。コピー先の配列を変更しても、元の配列には影響しません。

基本的な使用例

以下は、Clone()メソッドを使ってBitArrayのシャローコピーを作成するC#のコード例です。

using System;
using System.Collections;
public class Demo {
    public static void Main(){
        BitArray arr1 = new BitArray(5);
        arr1[0] = false;
        arr1[1] = true;
        Console.WriteLine("BitArray length = "+arr1.Length);
        Console.WriteLine("BitArray first element = "+arr1.Get(0));
        Console.WriteLine("BitArray second element = "+arr1.Get(1));
        BitArray arr2 = (BitArray)arr1.Clone();
        Console.WriteLine("\nBitArray2 length = "+arr2.Length);
        Console.WriteLine("BitArray2 first element = "+arr2.Get(0));
        Console.WriteLine("BitArray2 second element = "+arr2.Get(1));
    }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

BitArray length = 5
BitArray first element = False
BitArray second element = True

BitArray2 length = 5
BitArray2 first element = False
BitArray2 second element = True

foreachを使った別の例

続いて、foreachループですべての要素を表示しながら、複製されたBitArrayの中身を確認する例を見てみましょう。

using System;
using System.Collections;
public class Demo {
    public static void Main(){
        BitArray arr1 = new BitArray(5);
        arr1[0] = false;
        arr1[1] = true;
        arr1[2] = false;
        arr1[3] = true;
        arr1[4] = false;
        Console.WriteLine("BitArray length = "+arr1.Length);
        Console.WriteLine("Elements in BitArray1...");
        foreach(Object obj in arr1)
            Console.WriteLine(obj);
        BitArray arr2 = (BitArray)arr1.Clone();
        Console.WriteLine("\nBitArray2 length = "+arr2.Length);
        Console.WriteLine("Elements in BitArray2...");
        foreach(Object obj in arr2)
            Console.WriteLine(obj);
    }
}

実行結果

このコードを実行すると、以下の出力が得られます。複製元(BitArray1)と複製先(BitArray2)の要素が完全に一致していることが確認できます。

BitArray length = 5
Elements in BitArray1...
False
True
False
True
False

BitArray2 length = 5
Elements in BitArray2...
False
True
False
True
False

ポイントまとめ

  • BitArrayのシャローコピーにはClone()メソッドを使用します。
  • 戻り値はObject型なので、(BitArray)へのキャストが必要です。
  • 複製されたBitArrayは、元の配列と同じ長さ・同じビット値を持ちます。
  1. Windows 10でクリップボードをクリアするショートカットを作成する3つの方法

    クリップボードは、アプリケーション間でデータをやり取りするための一時的な保存領域です。ある場所から情報をコピーして別の場所で使いたいとき、コピーした内容は一時的にクリップボードに格納されます。テキスト、画像、ファイル、フォルダ、動画、音楽など、さまざまなデータをクリップボードにコピーできます。 クリップボードの唯一の欠点は、一度に保持できる情報が1つだけという点です。新しい内容をコピーすると、以前に保存されていた情報は上書きされます。そのため、家族や友人とPCを共有している場合は、PCを離れる前にクリップボードの内容を消去しておくことが重要です。個人情報やパスワードなどの機密データが残ったま

  2. Windows 11の評価版・アクティブ化透かし(ウォーターマーク)を削除する5つの方法

    Windows 11をはじめとするMicrosoft製品は、正規のプロダクトキーまたはデジタルライセンスで認証することで、Windows Updateによる定期更新やすべての機能を利用できるようになります。Windows 11のISOファイルをダウンロードしてインストールした場合、認証までの猶予期間は30日間です。この期間内に認証しないと、一部の機能が制限され、デスクトップには「Windowsのライセンス認証」という透かし(ウォーターマーク)が表示されてしまいます。 正規のプロダクトキーやデジタルライセンスをお持ちであれば、それを使って認証するのが最善の方法です。しかし、まだキーをお持ちでない