C#のList.Find/List.FindIndexについて

List<T>.FindList<T>.FindIndexの使い方はこんな感じです。

using System;
using System.Collections.Generic;

public class Example
{
  static public void Main ()
  {
    List<int> example = new List<int>{ 3, 1, 4, 1, 5  };
    Console.WriteLine("Find: " + example.Find((e) => { return e % 2 == 0; }));
    Console.WriteLine("FindIndex: " + example.FindIndex((e) => { return e % 2 == 0; }));
  }
}

実行結果

Find: 4
FindIndex: 2

気になるポイントは一致するものがなかった場合の戻り値です。

Find: 型Tの既定値
FindIndex: -1

よく忘れるのでメモしてみました。

動作サンプルは次のような感じです。

using System;
using System.Collections.Generic;

public class Example
{
  static public void Main ()
  {
    List<int> example = new List<int>{ 3, 1, 4, 1, 5, 9, 2 };
    Console.WriteLine("Find: " + example.Find((e) => { return e == 6; }));
    Console.WriteLine("FindIndex: " + example.FindIndex((e) => { return e == 6; }));
  }
}

実行結果

Find: 0
FindIndex: -1

リンク

List(T).Find メソッド (Predicate(T)) (System.Collections.Generic)
https://msdn.microsoft.com/ja-jp/library/x0b5b5bc(v=vs.110).aspx

List(T).FindIndex メソッド (Int32, Int32, Predicate(T)) (System.Collections.Generic)
https://msdn.microsoft.com/ja-jp/library/7eb596wz(v=vs.110).aspx

コメントを残す

メールアドレスが公開されることはありません。