C# | Array.FindLast() Method

Last Updated : 11 Jul, 2025
This method is used to search for an element that matches the conditions defined by the specified predicate and returns the last occurrence within the entire Array. Syntax:
public static T FindLast<T> (T[] array, Predicate<T> match);
Parameters:
array: It is the one-dimensional, zero-based array to search. match: It is the predicate that defines the conditions of the element to search for.
Return Value: This method returns the last element that matches the conditions defined by the specified predicate if it is found otherwise returns the default value for type T. Exception: This method throws ArgumentNullException if the array is null or match is null. Below programs illustrate the use of Array.FindLast(T[], Predicate) Method: Example 1: CSHARP
// C# program to demonstrate
// Array.FindLast(T[], Predicate<T>)
// Method
using System;
using System.Collections.Generic;

public class GFG {

    // Main Method
    public static void Main()
    {

        try {

            // Creating and initializing
            // new the String
            String[] myArr = {"Sun", "Son", "Tue", "Thu"};

            // Display the values of the myArr.
            Console.WriteLine("Initial Array:");

            // calling the PrintIndexAndValues()
            // method to print
            PrintIndexAndValues(myArr);

            // getting a last element with required
            // condition using method FindLast()
            string value = Array.FindLast(myArr, 
                   element => element.StartsWith("S",
                          StringComparison.Ordinal));

            // Display the value of
            // the found element.
            Console.Write("Last occurrence: ");

            // printing the string
            // following the condition
            Console.Write("{0}", value);
        }
        
        catch (ArgumentNullException e) {

            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }

    // Defining the method
    // PrintIndexAndValues
    public static void PrintIndexAndValues(String[] myArr)
    {
        for (int i = 0; i < myArr.Length; i++) {

            Console.WriteLine("{0}", myArr[i]);
        }
        Console.WriteLine();
    }
}
Output:
Initial Array:
Sun
Son
Tue
Thu

Last occurrence: Son
Example 2: CSHARP
// C# program to demonstrate
// Array.FindLast(T[], Predicate<T>)
// Method
using System;
using System.Collections.Generic;

public class GFG {

    // Main Method
    public static void Main()
    {

        try {

            // Creating and initializing
            // new Array String with null
            String[] myArr = null;

            // getting a last element with required
            // condition using method FindLast()
            string value = Array.FindLast(myArr,
                element => element.StartsWith("S",
                       StringComparison.Ordinal));

            // Display the value of
            // the found element.
            Console.Write("Last occurrence: ");

            // printing the string
            // following the condition
            Console.Write("{0}", value);
        }
        catch (ArgumentNullException e) {

            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }

    // Defining the method
    // PrintIndexAndValues
    public static void PrintIndexAndValues(String[] myArr)
    {
        for (int i = 0; i < myArr.Length; i++) {

            Console.WriteLine("{0}", myArr[i]);
        }
        Console.WriteLine();
    }
}
Output:
Exception Thrown: System.ArgumentNullException
Reference:
Comment

Explore