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

C#で配列の最後の要素のインデックスを取得する方法

C#で配列の最後の要素のインデックスを取得するには、GetUpperBound()メソッドを使用します。このメソッドは、配列の指定した次元における上限(最後の要素のインデックス)を返します。同様に、最初の要素のインデックスを取得したい場合はGetLowerBound()メソッドを使います。

基本的な使い方

以下の例では、文字列型の配列に対して各種プロパティの確認と、最初・最後の要素のインデックスを取得しています。

サンプルコード

using System;
public class Demo {
   public static void Main(){
      string[] products = new string[] { "Andy", "Mark", "Gary", "Andre"};
      Console.WriteLine("'A'で始まる名前が1つ以上あるか? = {0}",
      Array.Exists(products, ele => ele.StartsWith("A")));
      Console.WriteLine("配列は固定サイズか? = " + products.IsFixedSize);
      Console.WriteLine("配列は読み取り専用か? = " + products.IsReadOnly);
      Console.WriteLine("配列は同期されているか? = " + products.IsSynchronized);
      Console.WriteLine("最初の要素のインデックス = "+products.GetLowerBound(0));
      Console.WriteLine("最後の要素のインデックス = "+products.GetUpperBound(0));
   }
}

実行結果

このコードを実行すると、次のような出力が得られます。

'A'で始まる名前が1つ以上あるか? = True 
配列は固定サイズか? = True 配列は読み取り専用か? = False
配列は同期されているか? = False 最初の要素のインデックス = 0
最後の要素のインデックス = 3

この配列には4つの要素が格納されているため、最後の要素「Andre」のインデックスは3となります。C#の配列は0から始まるため、「要素数 − 1」が最後のインデックスになる点に注意してください。

空の配列の場合の動作

続いて、要素が1つも含まれていない空の配列の場合の挙動を確認してみましょう。

サンプルコード

using System;
public class Demo {
   public static void Main(){
      string[] products = new string[] { };
      Console.WriteLine("配列は固定サイズか? = " + products.IsFixedSize);
      Console.WriteLine("配列は読み取り専用か? = " + products.IsReadOnly);
      Console.WriteLine("配列は同期されているか? = " + products.IsSynchronized);
      Console.WriteLine("最初の要素のインデックス = "+products.GetLowerBound(0));
      Console.WriteLine("最後の要素のインデックス = "+products.GetUpperBound(0));
   }
}

実行結果

配列は固定サイズか? = True 配列は読み取り専用か? = False
配列は同期されているか? = False 最初の要素のインデックス = 0
最後の要素のインデックス = -1

空の配列の場合、GetUpperBound(0)は-1を返すことがわかります。これは「有効な要素が存在しない」ことを示しており、処理前に配列が空かどうかを判定する際にも活用できます。

補足:Lengthプロパティを使う方法

実務では、array.Length - 1を使って最後の要素のインデックスを求めることも一般的です。ただし、空の配列に対してarray[array.Length - 1]のようにアクセスすると例外が発生するため、事前に要素数のチェックを行うか、GetUpperBound()メソッドを利用するのが安全です。

  1. C#で配列から最後の要素を取得する方法

    C#で配列の最後の要素を取得する方法を解説します。まず、配列を設定しましょう。string[] str = new string[]{    Java,    HTML,    jQuery,    JavaScript,    Bootstrap };配列の最後の要素を取得するには、Lengthプロパティで配列の長さを取得し、そこから1を引いた値をインデックスとして指定します。str[str.Length - 1]配列のインデックスは0から始まるため、最後の要素のインデックスは「配列の長さ −

  2. Pythonでリストの最後の要素を取得する方法【初心者向け】

    Pythonでリストの最後の要素を取得する基本方法 Pythonでは、リストをはじめとするシーケンス型オブジェクトに対して、インデックス(添字)を使って任意の要素にアクセスできます。インデックスは0から始まるため、最初の要素は「0」、2番目の要素は「1」というように指定します。 ここで重要になるのが負のインデックスです。負の数を指定すると、リストの末尾から逆順に数えて要素を取得できます。したがって、リストの最後の要素を取得したい場合は、インデックスとして -1 を指定するだけでOKです。 >>> L1 = [1, 2, 3, 4, 5] >>> print(