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

C#のArray.Clear()メソッドの使い方を徹底解説!配列の要素を初期化する方法

C#のArray.Clear()メソッドは、配列内の要素をクリアし、その型の既定値(デフォルト値)にリセットするために使用されます。たとえばint型の配列であれば、要素はすべて0に設定されます。このメソッドでは、配列全体ではなく、指定した範囲の要素だけを選択的にクリアできるのが特徴です。

構文

public static void Clear (Array arr, int index, int len);

各パラメータの意味は以下のとおりです。

  • arr:クリア対象となる配列
  • index:クリアを開始する要素のインデックス
  • len:クリアする要素の個数

それでは、Array.Clear()メソッドの具体的な使用例を見ていきましょう。

例1:1次元配列の場合

using System;
public class Demo{
    public static void Main(){
        Console.WriteLine("配列の要素...");
        int[] arr = { 20, 50, 100, 150, 200, 300, 400, 450, 500, 600, 800, 1000, 1500, 2000 };
        for (int i = 0; i < 14; i++){
            Console.Write("{0} ", arr[i]);
        }
        Console.WriteLine();
        Console.WriteLine("指定した範囲の要素をクリア...");
        Array.Clear(arr, 5, 9);
        for (int i = 0; i < 14; i++){
            Console.Write("{0} ", arr[i]);
        }
        Console.WriteLine();
    }
}

出力結果

配列の要素...
20 50 100 150 200 300 400 450 500 600 800 1000 1500 2000
指定した範囲の要素をクリア...
20 50 100 150 200 0 0 0 0 0 0 0 0 0

この例では、インデックス5から9個分の要素(インデックス5〜13)がクリアされ、すべて0に置き換えられていることが確認できます。それより前の要素(インデックス0〜4)は元の値のまま保持されています。

例2:2次元配列の場合

Array.Clear()メソッドは多次元配列にも使用できます。多次元配列の場合、要素は行優先(行ごとに連続)で並んでいるものとして扱われる点に注意してください。

using System;
public class Demo{
    public static void Main(){
        Console.WriteLine("配列の要素...");
        int[] arr = { {20, 50, 100, 120}, {150, 200, 300, 350}, {400, 450, 500, 550}, {600, 800, 1000, 1200} };
        for (int i = 0; i < 4; i++){
            for (int j = 0; j < 4; j++){
                Console.Write("{0} ", arr[i,j]);
            }
            Console.WriteLine();
        }
        Console.WriteLine();
        Console.WriteLine("指定した範囲の要素をクリア...");
        Array.Clear(arr, 5, 9);
        for (int i = 0; i < 4; i++){
            for (int j = 0; j < 4; j++){
                Console.Write("{0} ", arr[i,j]);
            }
            Console.WriteLine();
        }
        Console.WriteLine();
    }
}

出力結果

配列の要素...
20 50 100 120
150 200 300 350
400 450 500 550
600 800 1000 1200
指定した範囲の要素をクリア...
20 50 100 120
150 0 0 0
0 0 0 0
0 0 1000 1200

このように、2次元配列に対してArray.Clear()を使用すると、フラットなインデックス(この例ではインデックス5から9個分)に基づいて要素がクリアされます。そのため、行の途中からクリアが始まり、複数の行にまたがって要素が0に設定される動作になります。

まとめ

Array.Clear()メソッドを使うことで、配列全体をループで回して手動で初期化する必要がなく、指定範囲の要素を効率的かつ簡潔に既定値へリセットできます。1次元配列・多次元配列のどちらにも対応しており、部分初期化が必要な場面で非常に便利なメソッドです。

  1. C#のConsole.SetBufferSize()メソッドの使い方を徹底解説

    C#におけるConsole.SetBufferSize()メソッドは、コンソール画面のバッファ領域(スクリーンバッファ)の幅と高さを指定した値に設定するために使用されるメソッドです。コンソールアプリケーションで表示領域をカスタマイズしたい場合に活用できます。構文Console.SetBufferSize()メソッドの構文は以下の通りです。public static void SetBufferSize (int width, int height);各パラメータの意味は次のようになっています。width: バッファ領域の幅(列数)を指定します。height: バッファ領域の高さ(行数)を指定し

  2. C#のConsole.ResetColor()メソッドの使い方を解説

    概要C#のConsole.ResetColor()メソッドは、コンソールの前景色(文字色)と背景色を、既定の配色に戻すために使用されます。プログラム内で一時的に文字色や背景色を変更した後、元の状態へ復元したい場合に非常に便利です。構文ResetColor()メソッドの構文は以下のとおりです。public static void ResetColor ();このメソッドは引数を受け取らず、戻り値もありません。また、staticメソッドであるため、インスタンスを生成することなく、Consoleクラスから直接呼び出すことができます。使用例それでは、C#でConsole.ResetColor()メソッ