C#のArrayクラスでSetValue()メソッドを使う方法
C#のSetValue()メソッドは、1次元配列(Array)内の指定した位置にある要素に値を設定するためのメソッドです。インデックスは32ビット整数として指定します。
SetValue()メソッドの基本的な使い方
まず、Array.CreateInstance()メソッドを使ってString型の要素を6つ持つ配列を作成します。
Array arr = Array.CreateInstance(typeof(String), 6);
次に、SetValue()メソッドを使って、各インデックス位置に値を設定していきます。
arr.SetValue("One", 0);
arr.SetValue("Two", 1);
arr.SetValue("Three", 3);
arr.SetValue("Four", 4);
arr.SetValue("Five", 5);この例では、第1引数に設定したい値、第2引数にその要素のインデックス(0から始まる番号)を渡しています。なお、上記のコードでは意図的にインデックス「2」をスキップしている点に注意してください。スキップされた要素にはnull(参照型の場合)が残ります。
サンプルコード
以下は、C#でSetValue()メソッドを使用する完全なサンプルプログラムです。
例
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), 6);
// 各インデックスに値を設定
arr.SetValue("One", 0);
arr.SetValue("Two", 1);
arr.SetValue("Three", 3);
arr.SetValue("Four", 4);
arr.SetValue("Five", 5);
// 配列の長さを表示
Console.WriteLine("Length {0}", arr.GetLength(0).ToString());
Console.ReadLine();
}
}
}出力結果
Length 6
ポイントまとめ
SetValue(値, インデックス)の形式で、指定した位置の要素に値を代入できます。- 通常の配列と異なり、
Array.CreateInstance()で作成した配列には[]演算子が使えないため、値の設定にはSetValue()メソッドが必要です。 - 値を取得する場合は、対となる
GetValue()メソッドを使用します。
-
C#で配列の次元数(ランク)を定義・取得する方法
C#において、配列の次元数(ランク)を調べたい場合は、Arrayクラスが提供する Rank プロパティを使用します。このプロパティは、配列が持つ次元の数を整数値として返します。Rankプロパティの使い方次元数を取得するには、以下のように記述します。arr.Rankここで、arrは対象となる配列です。例えば、次のような2次元配列を考えてみましょう。int[] arr = new int[3,4];行数・列数を取得するにはGetLengthメソッドを使う配列の次元数だけでなく、各次元の要素数(行数や列数など)を取得したい場合は、GetLength メソッドを使用します。引数には対象の次元のインデッ
-
C#のArrayクラスのプロパティとは?主要プロパティと使い方を解説
C#におけるArrayクラスは、すべての配列の基底クラスであり、System名前空間で定義されています。このクラスには、配列のサイズや読み取り専用かどうか、次元数などの情報を取得するための便利なプロパティが多数用意されています。Arrayクラスの主なプロパティ一覧No.プロパティと説明1IsFixedSize配列が固定サイズであるかどうかを示す値を取得します。2IsReadOnly配列が読み取り専用であるかどうかを示す値を取得します。3Length配列のすべての次元に含まれる要素の総数を、32ビット整数(int)として取得します。4LongLength配列のすべての次元に含まれる要素の総数を、