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

C#のArray.LastIndexOf()メソッドの使い方を徹底解説

概要

C#のArray.LastIndexOf()メソッドは、指定したオブジェクトを1次元配列全体から検索し、その要素が最後に現れた位置(インデックス)を返すメソッドです。要素が見つからなかった場合は「-1」が返されます。同じ値が複数含まれる配列から、最後の出現位置を知りたい場合に非常に便利です。

構文

public static int LastIndexOf (Array arr, object val);

各パラメータの意味は以下のとおりです。

  • arr:検索対象となる1次元配列
  • val:配列内で検索したいオブジェクト

使用例1:文字列配列の場合

using System;
public class Demo {
   public static void Main() {
      string[] strArr = {"John", "Tim", "Fedric", "Gary", "Harry", "Damien", "David", "Harry"};
      Array.Sort(strArr);
      Console.WriteLine("Array elements...");
      foreach(string s in strArr) {
         Console.WriteLine(s);
      }
      Console.Write("Element Gary is at index = " + Array.BinarySearch(strArr, "Gary"));
      Console.Write("\nElement Tom is at index = " + Array.BinarySearch(strArr, "Tom"));
      Console.Write("\nLast index of element Harry = " + Array.LastIndexOf(strArr, "Harry"));
   }
}

出力結果

Array elements...
Damien
David
Fedric
Gary
Harry
Harry
John
Tim
Element Gary is at index = 3
Element Tom is at index = -9
Last index of element Harry = 5

解説

この例では、まずArray.Sort()で配列を昇順にソートしてから検索を行っています。「Harry」は配列内に2つ存在しますが、LastIndexOf()は最後に出現する位置であるインデックス「5」を返します。また、配列に存在しない「Tom」をBinarySearch()で検索すると負の値(-9)が返される点にも注目してください。戻り値が負であれば「要素が見つからなかった」ことを意味します。

使用例2:整数配列の場合

using System;
public class Demo {
   public static void Main() {
      int[] intArr = {5, 10, 15, 20, 15, 25, 30};
      Array.Sort(intArr);
      Console.WriteLine("Array elements...");
      foreach(int i in intArr) {
         Console.WriteLine(i);
      }
      Console.Write("Element 20 is at index = " + Array.BinarySearch(intArr, 20));
      Console.Write("\nLast index of element 15 = " + Array.LastIndexOf(intArr, 15));
      Console.Write("\nLast index of element 50 = " + Array.LastIndexOf(intArr, 50));
   }
}

出力結果

Array elements...
5
10
15
15
20
25
30
Element 20 is at index = 4
Last index of element 15 = 3
Last index of element 50 = -1

解説

整数配列の例でも同様の動作が確認できます。ソート後の配列では「15」がインデックス2と3の2箇所に存在しますが、LastIndexOf()は最後の出現位置である「3」を返します。一方、配列に存在しない「50」を検索した場合の戻り値は「-1」となります。

まとめ

Array.LastIndexOf()メソッドを使えば、配列内の特定の要素が最後に現れるインデックスを簡単に取得できます。重複した要素を含む配列を扱う際や、末尾側からの検索が必要な場面で活用できる、覚えておくと便利なメソッドです。

  1. JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説

    Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g

  2. JavaScriptのArray.entries()メソッドとは?使い方とサンプルコードを解説

    Array.entries()メソッドとはJavaScript の Array.entries() メソッドは、配列内の各要素を「インデックス(キー)と値」のペアとして格納した、新しい Array Iterator オブジェクトを返します。このオブジェクトは反復可能(iterable)であるため、for...of ループやスプレッド構文などを使って、要素を一つずつ取り出すことができます。基本構文arr.entries()サンプルコード以下は、Array.entries() メソッドを使用して、配列の要素をキー/値ペアとして表示するコード例です。<!DOCTYPE html> <