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

C#のArrayクラスでGetValue()メソッドを使う方法【サンプルコード付き解説】

C#のArrayクラスに用意されているGetValue()メソッドは、配列内の指定した位置に格納された値を取得するためのメソッドです。インデックスは32ビット整数(int型)で指定します。また、このメソッドは多次元配列の要素にも対応しているため、柔軟なデータ取得が可能です。

配列の作成と値の設定

まず、Array.CreateInstanceメソッドを使って配列を生成し、SetValue()メソッドで値を設定します。以下の例では、文字列型(String)の「3×6」の2次元配列を作成しています。

Array arr = Array.CreateInstance(typeof(String), 3, 6);
arr.SetValue("One", 0, 0);
arr.SetValue("Two", 0, 1);
arr.SetValue("Three", 0, 2);
arr.SetValue("Four", 0, 3);
arr.SetValue("Five", 1, 4);
arr.SetValue("Six", 1, 5);
arr.SetValue("Seven", 1, 2);
arr.SetValue("Eight", 1, 3);

SetValue()メソッドの第1引数には設定する値を、第2引数以降には各次元のインデックスを渡します。これにより、配列内の任意の位置へ自由に値を格納できます。

GetValue()メソッドによる値の取得

次に、GetLength()メソッドで各次元の要素数を取得し、二重ループで配列全体を走査しながらGetValue()メソッドを呼び出すことで、すべての要素の値を順番に表示できます。

for (int i = 0; i < a; i++)
for (int j = 0; j < b; j++)
Console.WriteLine( arr.GetValue(i, j));

サンプルコード(完全版)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
    class Program {
        static void Main(string[] args) {
            Array arr = Array.CreateInstance(typeof(String), 3, 6);
            arr.SetValue("One", 0, 0);
            arr.SetValue("Two", 0, 1);
            arr.SetValue("Three", 0, 2);
            arr.SetValue("Four", 0, 3);
            arr.SetValue("Five", 1, 4);
            arr.SetValue("Six", 1, 5);
            arr.SetValue("Seven", 1, 2);
            arr.SetValue("Eight", 1, 3);
            int a = arr.GetLength(0);
            int b = arr.GetLength(1);
            // 値の取得
            for (int i = 0; i <a; i++)
            for (int j = 0; j < b; j++)
            Console.WriteLine( arr.GetValue(i, j));
            Console.ReadLine();
        }
    }
}

実行結果

One
Two
Three
Four

Seven
Eight
Five
Six

値が設定されていない要素は空(null)として扱われるため、出力時には空白行として表示されます。このように、GetValue()メソッドとSetValue()メソッドを組み合わせることで、配列の任意の位置にあるデータを簡単に読み書きできます。多次元配列を扱う際にも同じ考え方で応用できるので、ぜひ実際にコードを動かして挙動を確認してみてください。

  1. C#で配列の次元数(ランク)を定義・取得する方法

    C#において、配列の次元数(ランク)を調べたい場合は、Arrayクラスが提供する Rank プロパティを使用します。このプロパティは、配列が持つ次元の数を整数値として返します。Rankプロパティの使い方次元数を取得するには、以下のように記述します。arr.Rankここで、arrは対象となる配列です。例えば、次のような2次元配列を考えてみましょう。int[] arr = new int[3,4];行数・列数を取得するにはGetLengthメソッドを使う配列の次元数だけでなく、各次元の要素数(行数や列数など)を取得したい場合は、GetLength メソッドを使用します。引数には対象の次元のインデッ

  2. C#のArrayクラスのプロパティとは?主要プロパティと使い方を解説

    C#におけるArrayクラスは、すべての配列の基底クラスであり、System名前空間で定義されています。このクラスには、配列のサイズや読み取り専用かどうか、次元数などの情報を取得するための便利なプロパティが多数用意されています。Arrayクラスの主なプロパティ一覧No.プロパティと説明1IsFixedSize配列が固定サイズであるかどうかを示す値を取得します。2IsReadOnly配列が読み取り専用であるかどうかを示す値を取得します。3Length配列のすべての次元に含まれる要素の総数を、32ビット整数(int)として取得します。4LongLength配列のすべての次元に含まれる要素の総数を、