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

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

C#のArray.FindAll()メソッドは、指定された述語(Predicate)で定義された条件に一致するすべての要素を配列から取得するためのメソッドです。条件を満たす要素だけを抽出した新しい配列が返されます。

構文

Array.FindAll()メソッドの構文は以下のとおりです。

public static T[] FindAll<T> (T[] array, Predicate<T> match);

パラメータ

  • array:検索対象となる元の配列(一次元で、インデックスがゼロから始まる配列である必要があります)。
  • match:検索する要素の条件を定義するPredicate<T>デリゲート。

戻り値として、条件に一致したすべての要素を含むT型の配列が返されます。一致する要素が存在しない場合は、空の配列が返されます。

使用例

次の例では、文字列の配列から「b」で始まる要素をすべて検索して取得しています。

using System;
public class Demo{
    public static void Main(){
        Console.WriteLine("配列の要素...");
        string[] arr = { "car", "bike", "truck", "bus"};
        for (int i = 0; i < arr.Length; i++){
            Console.Write("{0} ", arr[i]);
        }
        Console.WriteLine();
        String[] res = Array.FindAll(arr, ele => ele.StartsWith("b",
        StringComparison.Ordinal));
        Console.Write("\n検索結果のすべての要素...\n");
        for (int i = 0; i < res.Length; i++) {
            Console.WriteLine("{0}", res[i]);
        }
        Console.WriteLine();
    }
}

実行結果

上記のコードを実行すると、以下のような出力が得られます。

配列の要素...
car bike truck bus
検索結果のすべての要素...
bike
bus

ポイントまとめ

  • Array.FindAll()は、ラムダ式やメソッド名をPredicateとして渡すことで、柔軟な条件指定が可能です。
  • 元の配列は変更されず、条件に一致した要素のみを格納した新しい配列が生成されます。
  • 1つの要素だけを取得したい場合はArray.Find()、そのインデックスが必要な場合はArray.FindIndex()を使うと便利です。
  1. C#のConsole.SetBufferSize()メソッドの使い方を徹底解説

    C#におけるConsole.SetBufferSize()メソッドは、コンソール画面のバッファ領域(スクリーンバッファ)の幅と高さを指定した値に設定するために使用されるメソッドです。コンソールアプリケーションで表示領域をカスタマイズしたい場合に活用できます。構文Console.SetBufferSize()メソッドの構文は以下の通りです。public static void SetBufferSize (int width, int height);各パラメータの意味は次のようになっています。width: バッファ領域の幅(列数)を指定します。height: バッファ領域の高さ(行数)を指定し

  2. C#のConsole.ResetColor()メソッドの使い方を解説

    概要C#のConsole.ResetColor()メソッドは、コンソールの前景色(文字色)と背景色を、既定の配色に戻すために使用されます。プログラム内で一時的に文字色や背景色を変更した後、元の状態へ復元したい場合に非常に便利です。構文ResetColor()メソッドの構文は以下のとおりです。public static void ResetColor ();このメソッドは引数を受け取らず、戻り値もありません。また、staticメソッドであるため、インスタンスを生成することなく、Consoleクラスから直接呼び出すことができます。使用例それでは、C#でConsole.ResetColor()メソッ