C#のList.FindLastIndexメソッドで条件に一致する要素の最後のインデックスを取得する方法
C#のList<T>.FindLastIndexメソッドを使用すると、指定した条件(述語)に一致する要素をリスト全体から検索し、その要素が最後に出現する位置のゼロベースのインデックスを返すことができます。
FindLastIndexメソッドとは
FindLastIndexメソッドは、Predicate<T>デリゲートを引数として受け取り、リストの末尾から先頭に向かって検索を実行します。条件に一致する要素のうち、リスト内で最後に出現するもののインデックスを返し、一致する要素がひとつも存在しない場合は -1 を返します。
例1:10の倍数を検索する
以下の例では、「10で割り切れる数値」という条件を満たす要素を検索し、リスト内で最後に一致する位置のインデックスを取得しています。
using System;
using System.Collections.Generic;
public class Demo {
private static bool demo(int i) {
return ((i % 10) == 0);
}
public static void Main(String[] args) {
List<int> list = new List<int>();
list.Add(200);
list.Add(215);
list.Add(310);
list.Add(500);
list.Add(600);
Console.WriteLine("リストの要素...");
foreach (int i in list) {
Console.WriteLine(i);
}
Console.WriteLine("条件に一致する最後のインデックス = " + list.FindLastIndex(demo));
}
}出力
上記のコードを実行すると、次のような結果が出力されます。
リストの要素... 200 215 310 500 600 条件に一致する最後のインデックス = 4
この例では、10で割り切れる要素は「200」「310」「500」「600」です。その中で最後に出現するのはインデックス4の「600」であるため、結果は「4」となります。
例2:偶数を検索する
続いて、条件を「偶数」に変更した別の例を見てみましょう。
using System;
using System.Collections.Generic;
public class Demo {
private static bool demo(int i) {
return ((i % 2) == 0);
}
public static void Main(String[] args) {
List<int> list = new List<int>();
list.Add(200);
list.Add(215);
list.Add(310);
list.Add(500);
list.Add(655);
Console.WriteLine("リストの要素...");
foreach (int i in list) {
Console.WriteLine(i);
}
Console.WriteLine("条件に一致する最後のインデックス = " + list.FindLastIndex(demo));
}
}出力
実行結果は以下のとおりです。
リストの要素... 200 215 310 500 655 条件に一致する最後のインデックス = 3
この場合、偶数となる要素は「200」「310」「500」であり、最後に出現する偶数はインデックス3の「500」です。末尾の「655」は奇数のため条件に一致せず、結果は「3」となります。
まとめ
FindLastIndexメソッドは、ラムダ式を組み合わせることでより簡潔に記述できます。たとえば list.FindLastIndex(i => i % 10 == 0) のように書けば、条件判定用のメソッドを別途定義する必要がありません。また、条件に一致する要素が存在しない場合は -1 が返されるため、実際の開発では戻り値が -1 でないかどうかのチェックを行うことをおすすめします。
-
Pythonのリストにインデックスを使って要素を追加する方法
Pythonのリスト(list)は、順序付けられており変更可能なコレクション型データです。重複した要素も許容するため、Pythonプログラムで最も頻繁に使われるデータ型の一つとなっています。本記事では、インデックス機能を活用してリストに要素を追加する方法を解説します。要素を追加する前に、まずインデックスを使ってリスト内の要素にアクセスする基本的な方法を確認しておきましょう。インデックスを使ったリスト要素へのアクセスリスト内のすべての要素にはインデックスが割り当てられており、これによって要素の順序が保たれています。インデックスを指定することで、任意の位置にある要素へアクセスできます。スライス表記
-
Pythonでリストの最後の要素を取得する方法【初心者向け】
Pythonでリストの最後の要素を取得する基本方法 Pythonでは、リストをはじめとするシーケンス型オブジェクトに対して、インデックス(添字)を使って任意の要素にアクセスできます。インデックスは0から始まるため、最初の要素は「0」、2番目の要素は「1」というように指定します。 ここで重要になるのが負のインデックスです。負の数を指定すると、リストの末尾から逆順に数えて要素を取得できます。したがって、リストの最後の要素を取得したい場合は、インデックスとして -1 を指定するだけでOKです。 >>> L1 = [1, 2, 3, 4, 5] >>> print(