GetLowerBound メソッド

Array.GetLowerBound メソッド

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

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)

public int GetLowerBound (
	int dimension
)
public int GetLowerBound (
	int dimension
)
public function GetLowerBound (
	dimension : int
) : int
適用できません。

パラメータ

dimension

下限を指定する Array の 0 から始まる次元。

戻り値

Array 内の指定した次元の下限。

例外の種類条件

IndexOutOfRangeException

dimension が 0 未満です。

または

dimensionRank 以上です。

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

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

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

 using System;
 public class SamplesArray  {
 
    public static void Main()  {
 
       // 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.
       Console.WriteLine( "One-dimensional Array:" );
       Console.WriteLine( "Rank\tLower\tUpper" );
       Console.WriteLine( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0) );
       Console.WriteLine( "Values:" );
       PrintValues( my1DIntArray );
       Console.WriteLine();
 
       // 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.
       Console.WriteLine( "Multidimensional Array:" );
       Console.WriteLine( "Rank\tLower\tUpper" );
       for ( int i = 0; i < my3DIntArray.Rank; i++ )
          Console.WriteLine( "{0}\t{1}\t{2}", i, my3DIntArray.GetLowerBound(i), my3DIntArray.GetUpperBound(i) );
       Console.WriteLine( "Values:" );
       PrintValues( my3DIntArray );
    }
 
 
    public static void PrintValues( 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  {
             Console.WriteLine();
             i = 1;
          }
          Console.Write( "\t{0}", myEnumerator.Current );
       }
       Console.WriteLine();
    }
 }
 /*
 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
*/ 

import System.*;

public class SamplesArray
{
    public static void main(String[] args)
    {
        // Creates a new one-dimensional Array of type Int32.
        Array my1DIntArray = Array.CreateInstance(Int32.class.ToType(), 5);
        // Uses GetLowerBound and GetUpperBound in the for loop.
        for (int i = my1DIntArray.GetLowerBound(0); i <= my1DIntArray.
            GetUpperBound(0); i++) {
            my1DIntArray.SetValue((Int32)(i + 1), i);
        }
        // Displays the bounds and values of the one-dimensional Array.
        Console.WriteLine("One-dimensional Array:");
        Console.WriteLine("Rank\tLower\tUpper");
        Console.WriteLine("{0}\t{1}\t{2}", (Int32)0, (Int32)my1DIntArray.
            GetLowerBound(0), (Int32)my1DIntArray.GetUpperBound(0));
        Console.WriteLine("Values:");
        PrintValues(my1DIntArray);
        Console.WriteLine();
        // Creates a new three-dimensional Array of type Int32.
        Array my3DIntArray = Array.CreateInstance(Int32.class.ToType(), 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((Int32)(i * 100 + j * 10 + k), i, j, k);
                }
            }
        }  // Displays the bounds and values of the multidimensional Array.
        Console.WriteLine("Multidimensional Array:");
        Console.WriteLine("Rank\tLower\tUpper");
        for (int i = 0; i < my3DIntArray.get_Rank(); i++) {
            Console.WriteLine("{0}\t{1}\t{2}", (Int32)i, (Int32)my3DIntArray.
                GetLowerBound(i), (Int32)my3DIntArray.GetUpperBound(i));
        }
        Console.WriteLine("Values:");
        PrintValues(my3DIntArray);
    } //main

    public static void PrintValues(Array myArr)
    {
        System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
        int i = 0;
        int cols = myArr.GetLength(myArr.get_Rank() - 1);
        while (myEnumerator.MoveNext()) {
            if (i < cols) {
                i++;
            }
            else {
                Console.WriteLine();
                i = 1;
            }
            Console.Write("\t{0}", myEnumerator.get_Current());
        }
        Console.WriteLine();
    } //PrintValues
} //SamplesArray

/*
 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
*/

import System;

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

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

// Displays the bounds and values of the one-dimensional Array.
Console.WriteLine( "One-dimensional Array:" );
Console.WriteLine( "Rank\tLower\tUpper" );
Console.WriteLine( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0) );
Console.WriteLine( "Values:" );
PrintValues( my1DIntArray );
Console.WriteLine();

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

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

// Displays the bounds and values of the multidimensional Array.
Console.WriteLine( "Multidimensional Array:" );
Console.WriteLine( "Rank\tLower\tUpper" );
for ( var l : int = 0; l < my3DIntArray.Rank; l++ )
  Console.WriteLine( "{0}\t{1}\t{2}", l, my3DIntArray.GetLowerBound(l), my3DIntArray.GetUpperBound(l) );
Console.WriteLine( "Values:" );
PrintValues( my3DIntArray );
 
 
function PrintValues( myArr : System.Array)  {
   var myEnumerator : System.Collections.IEnumerator  = myArr.GetEnumerator();
   var i : int = 0;
   var cols : int = myArr.GetLength( myArr.Rank - 1 );
   while ( myEnumerator.MoveNext() )  {
      if ( i < cols )  {
         i++;
      } else  {
         Console.WriteLine();
         i = 1;
      }
      Console.Write( "\t{0}", myEnumerator.Current );
   }
   Console.WriteLine();
}
 /*
 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 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

.NET Compact Framework

サポート対象 : 2.0,1.0

XNA Framework

サポート対象 : 1.0

コミュニティの追加

追加
表示:
© 2016 Microsoft