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

C#で3次元配列の上限と下限を取得する方法

C#で配列の上限(インデックスの最大値)と下限(インデックスの最小値)を取得するには、それぞれ GetUpperBound() メソッドと GetLowerBound() メソッドを使用します。

これらのメソッドには、対象となる次元(ディメンション)のインデックスを引数として指定します。次元は0から始まる番号で表されます。

3次元配列での使い方

例として、次のような3次元配列を考えてみましょう。

int[,] arr = new int[2,3,4];

この配列に対して、各次元の上限と下限は以下のように取得できます。

次元0の場合

arr.GetUpperBound(0)
arr.GetLowerBound(0)

次元1の場合

arr.GetUpperBound(1)
arr.GetLowerBound(1)

次元2の場合

arr.GetUpperBound(2)
arr.GetLowerBound(2)

サンプルプログラム

実際に3次元配列のすべての次元について、上限と下限を出力する完全なコード例を見てみましょう。

using System;
class Program {
   static void Main() {
      int[,] arr = new int[2,3,4];
      Console.WriteLine("Dimension 0 Upper Bound: {0}",arr.GetUpperBound(0).ToString());
      Console.WriteLine("Dimension 0 Lower Bound: {0}",arr.GetLowerBound(0).ToString());
      Console.WriteLine("Dimension 1 Upper Bound: {0}",arr.GetUpperBound(1).ToString());
      Console.WriteLine("Dimension 1 Lower Bound: {0}",arr.GetLowerBound(1).ToString());
      Console.WriteLine("Dimension 2 Upper Bound: {0}",arr.GetUpperBound(2).ToString());
      Console.WriteLine("Dimension 2 Lower Bound: {0}",arr.GetLowerBound(2).ToString());
   }
}

実行結果

Dimension 0 Upper Bound: 1
Dimension 0 Lower Bound: 0
Dimension 1 Upper Bound: 2
Dimension 1 Lower Bound: 0
Dimension 2 Upper Bound: 3
Dimension 2 Lower Bound: 0

解説

実行結果からわかるように、new int[2,3,4] で作成した配列では、各次元の要素数がそれぞれ2、3、4であるため、上限値は「要素数 − 1」となります。

  • 次元0:要素数2 → 上限は1、下限は0
  • 次元1:要素数3 → 上限は2、下限は0
  • 次元2:要素数4 → 上限は3、下限は0

C#の通常の配列は下限が常に0であるため、GetLowerBound() の戻り値はすべての次元で0になります。ただし、非ゼロベースの配列を作成した場合には異なる値が返されることもあるため、汎用的なコードを書く際にはこれらのメソッドを使うのが安全です。

  1. JavaScript配列から一意の値(重複なし)を取得する方法

    JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <

  2. 【NumPy】flatten()とravel()の違いを徹底解説!ビューとコピーの挙動・速度の違いを比較

    NumPyでは、リストやタプルなどさまざまなデータから配列を作成できます。そして、多次元のndarrayを1次元配列へ変換する方法として、flatten()メソッドとravel()メソッドの2種類が用意されています。 一見すると両者はまったく同じ働きをするように見えますが、内部の動作には重要な違いがあります。この記事では、その違いをサンプルコードとともにわかりやすく解説します。 基本的な使い方 まずは、それぞれのメソッドを実際に使ってみましょう。 import numpy as np # リストから配列を作成 arr = np.array([(2, 7, 3, 4), (5, 6, 9, 1