C#のArrayクラスでよく使われる主要メソッド一覧と使い方を解説
C#におけるArrayクラスは、すべての配列の基底クラスであり、System名前空間に定義されています。このクラスには、配列を操作するための便利なメソッドが多数用意されており、日常的なプログラミングで頻繁に利用されます。
ここでは、Arrayクラスの中でも特によく使われる代表的なメソッドを紹介します。
Arrayクラスの主なメソッド一覧
| 番号 | メソッドと説明 |
|---|---|
| 1 | Clear 配列内の指定範囲の要素を、要素の型に応じてゼロ・false・nullに設定します。 |
| 2 | Copy(Array, Array, Int32) 元の配列の先頭要素から指定した長さ分の要素をコピーし、別の配列の先頭から貼り付けます。長さは32ビット整数で指定します。 |
| 3 | CopyTo(Array, Int32) 現在の1次元配列のすべての要素を、指定したインデックス以降の別の1次元配列へコピーします。インデックスは32ビット整数で指定します。 |
| 4 | GetLength 指定した次元に含まれる要素数を、32ビット整数として取得します。 |
| 5 | GetLongLength 指定した次元に含まれる要素数を、64ビット整数として取得します。 |
| 6 | GetLowerBound 配列の指定した次元におけるインデックスの下限(最小値)を取得します。 |
| 7 | GetType 現在のインスタンスのType情報を取得します(Objectクラスから継承)。 |
| 8 | GetUpperBound 配列の指定した次元におけるインデックスの上限(最大値)を取得します。 |
それでは、Arrayクラスのメソッドを使って、配列の上限(UpperBound)と下限(LowerBound)を取得する具体例を見てみましょう。
サンプルコード
using System;
class Program {
static void Main() {
int[] arr = new int[3,4];
Console.WriteLine(arr.GetLength(0));
Console.WriteLine(arr.GetLength(1));
// Length
Console.WriteLine(arr.Length);
Console.WriteLine("Upper Bound: {0}",arr.GetUpperBound(0).ToString());
Console.WriteLine("Lower Bound: {0}",arr.GetLowerBound(0).ToString());
}
}実行結果
3 4 12 Upper Bound: 2 Lower Bound: 0
実行結果の解説
この例では、int[3,4]という2次元配列を作成しています。GetLength(0)は第1次元の要素数「3」、GetLength(1)は第2次元の要素数「4」を返し、Lengthプロパティは全要素数「12」を返します。
また、C#の配列はインデックスが0から始まるため、GetUpperBound(0)は第1次元の最大インデックス「2」を、GetLowerBound(0)は最小インデックス「0」をそれぞれ返します。これらのメソッドを活用することで、多次元配列のサイズや境界を安全に扱うことができます。
-
【Java 9】Optionalクラスに追加された3つの新メソッド(or / ifPresentOrElse / stream)を解説
Optionalクラスは、null以外の値を保持しているかもしれないし、保持していないかもしれない——そんな状態を表現できるコンテナを提供します。このクラスはJava 8で導入され、コード中でNullPointerExceptionが発生しうる箇所を減らすことを目的としています。さらにJava 9では、デフォルト値の扱いをより柔軟にするための3つの新メソッド、or()、ifPresentOrElse()、stream()が追加されました。 Optional.or() or()メソッドはJava 9で導入され、引数として関数型インターフェースのSupplierを受け取ります。このメソッドは常に
-
Javaのクラスメソッド(静的メソッド)とは?基本から使い方まで解説
Javaにおけるクラスメソッド(静的メソッド)とは、特定のオブジェクトのインスタンスではなく、クラスそのものに対して呼び出されるメソッドのことです。static修飾子を付けることで、すべてのクラスインスタンス間で同じ実装が保証されます。静的メソッドはインスタンス化せずに呼び出すことができるため、アクセスできるのはクラス内の他の静的メンバー(staticなフィールドやメソッド)のみです。インスタンス変数や非staticメソッドには直接アクセスできない点に注意しましょう。Javaの標準ライブラリにも多くの静的メソッドが用意されています。代表的な例としては、Math.random()、System.