情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Array.GetLowerBound メソッド

2013/12/12

Array 内の指定した次元の下限を取得します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public int GetLowerBound(
	int dimension
)

パラメーター

dimension
型: System.Int32
下限を指定する Array の 0 から始まる次元。

戻り値

型: System.Int32
Array 内の指定した次元の下限。

例外条件
IndexOutOfRangeException

dimension が 0 未満です。

または

dimensionRank 以上です。

GetLowerBound(0)Array の最初の次元のインデックスの下限を返します。GetLowerBound(Rank - 1)Array の最後の次元の下限を返します。

このメソッドは O(1) 操作です。

バージョンについてのメモ

Windows Phone

渡されたディメンションが配列のランクと等しい場合は、Array.GetLowerBound(System.Int32)IndexOutOfRangeException をスローしません。代わりに、下限値として 0 を返します。

GetLowerBoundGetUpperBound を使用して 1 次元配列と多次元配列の 2 つの配列を初期化する方法を次のコード例に示します。

メモメモ:

この例を実行するには、「Windows Phone での静的 TextBlock コントロールのあるコード例のビルド」を参照してください。


using System;
public class Example
{

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      // Creates a new one-dimensional Array of type Int32.
      Array my1DIntArray = Array.CreateInstance(typeof(Int32), 5);

      // Uses GetLowerBound and GetUpperBound in the for loop.
      for (int i = my1DIntArray.GetLowerBound(0); i <= my1DIntArray.GetUpperBound(0); i++)
         my1DIntArray.SetValue(i + 1, i);

      // Displays the bounds and values of the one-dimensional Array.
      outputBlock.Text += "One-dimensional Array:" + "\n";
      outputBlock.Text += "Rank\tLower\tUpper" + "\n";
      outputBlock.Text += String.Format("{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0)) + "\n";
      outputBlock.Text += "Values:" + "\n";
      PrintValues(outputBlock, my1DIntArray);
      outputBlock.Text += "\n";

      // Creates a new three-dimensional Array of type Int32.
      Array my3DIntArray = Array.CreateInstance(typeof(Int32), 2, 3, 4);

      // Uses GetLowerBound and GetUpperBound in the for loop.
      for (int i = my3DIntArray.GetLowerBound(0); i <= my3DIntArray.GetUpperBound(0); i++)
         for (int j = my3DIntArray.GetLowerBound(1); j <= my3DIntArray.GetUpperBound(1); j++)
            for (int k = my3DIntArray.GetLowerBound(2); k <= my3DIntArray.GetUpperBound(2); k++)
            {
               my3DIntArray.SetValue((i * 100) + (j * 10) + k, i, j, k);
            }

      // Displays the bounds and values of the multidimensional Array.
      outputBlock.Text += "Multidimensional Array:" + "\n";
      outputBlock.Text += "Rank\tLower\tUpper" + "\n";
      for (int i = 0; i < my3DIntArray.Rank; i++)
         outputBlock.Text += String.Format("{0}\t{1}\t{2}", i, my3DIntArray.GetLowerBound(i), my3DIntArray.GetUpperBound(i)) + "\n";
      outputBlock.Text += "Values:" + "\n";
      PrintValues(outputBlock, my3DIntArray);
   }


   public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, Array myArr)
   {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength(myArr.Rank - 1);
      while (myEnumerator.MoveNext())
      {
         if (i < cols)
         {
            i++;
         }
         else
         {
            outputBlock.Text += "\n";
            i = 1;
         }
         outputBlock.Text += String.Format("\t{0}", myEnumerator.Current);
      }
      outputBlock.Text += "\n";
   }
}
/*
This code produces the following output.

One-dimensional Array:
Rank    Lower    Upper
0    0    4
Values:
    1    2    3    4    5

Multidimensional Array:
Rank    Lower    Upper
0    0    1
1    0    2
2    0    3
Values:
    0    1    2    3
    10    11    12    13
    20    21    22    23
    100    101    102    103
    110    111    112    113
    120    121    122    123
*/


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: