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

C#で配列内の最後に一致する要素を見つける方法(Array.LastIndexOf活用)

C#で配列内から最後に一致する要素を検索するには、Array.LastIndexOf メソッドを使用します。このメソッドは、指定した要素が配列内に存在する場合はその最後のインデックスを返し、存在しない場合は -1 を返します。

対象となる配列

ここでは、次のような整数型配列を例に考えます。

int[] val = { 97, 45, 76, 21, 89, 45 };

Array.LastIndexOfメソッドの使い方

この配列の中には「45」が2つ含まれています。仮に、要素「45」が最後に出現する位置(インデックス)を調べたい場合は、次のように Array.LastIndexOf() メソッドを呼び出します。

int res = Array.LastIndexOf(val, 45);

第一引数に検索対象の配列、第二引数に探したい値を渡すだけで、後方から検索が行われ、最初に見つかった位置(つまり最後の出現位置)のインデックスが返されます。

サンプルコード

以下は、実際に動作する完全なサンプルプログラムです。

using System;
using System.Text;

public class Demo {
    public static void Main() {
        int[] val = { 97, 45, 76, 21, 89, 45 };

        // 要素45の最後のインデックスを取得
        int res = Array.LastIndexOf(val, 45);

        // 結果を表示
        Console.WriteLine("Index of element 45 is = " + res);
    }
}

実行結果

Index of element 45 is = 5

解説

配列 val の中で「45」はインデックス1とインデックス5の2箇所に存在します。Array.LastIndexOf は配列の末尾側から検索を行うため、この例では最後の出現位置である 5 が返されています。

なお、検索した要素が配列内に存在しない場合は -1 が返されるため、実行結果を判定条件として利用すれば、要素の有無を確認することも可能です。

  1. Pythonで配列内の最大の要素を見つける方法を解説

    この記事では、「配列の中から最大の要素を求める」という問題の解決方法について詳しく解説します。 問題の概要 問題文:与えられた配列に対して、その中で最も大きい要素を計算して求める必要があります。 ここではブルートフォース(総当たり)アプローチを使用します。これは、配列全体を先頭から順番に走査しながら各要素を比較し、その時点での最大値を更新していくというシンプルかつ確実な手法です。 実装例 以下に具体的なコードを示します。 # 最大値を求める関数 def largest(arr, n): # 最大要素の初期値として最初の要素を設定 max = arr[0] # 配列全体を

  2. Pythonで配列(リスト)の合計を求める方法をわかりやすく解説

    この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に