在 C# 中列出 FindLastIndex()方法| Set -1

原文:https://www . geesforgeks . org/list-findlastindex-method-in-c-sharp-set-1/

此方法用于搜索与指定谓词定义的条件相匹配的元素,并返回列表中最后一次出现的从零开始的索引或其一部分。该方法的重载列表中有 3 种方法:

  • 查找最后索引(谓词)方法 FindLastIndex(Int32,谓词)方法 FindLastIndex(Int32, Int32, Predicate) Method

    这里我们只讨论第一种方法,即 FindLastIndex(谓词< T > )

    列表< T >。FindLastIndex(谓词< T >)方法搜索与指定谓词定义的条件匹配的元素,并返回整个列表< T > 中最后一次出现的从零开始的索引。

    语法:

    cs public int FindLastIndex (Predicate <T> match);

    这里,匹配是谓词< T >委托,它定义了要搜索的元素的条件。

    返回值:如果找到该元素,则返回与参数“match”指定的条件匹配的最后一个元素的 int 或 Int32 类型的从零开始的索引。如果没有找到,则返回“-1”。

    异常:如果match为空,该方法将抛出 ArgumentNullException

    示例 1: 在本例中,创建一个名为“PC”的列表,其中包含一些元素。我们的任务是找到一个名为“Computer”的元素并打印它的索引。

    ```cs // C# Program to illustrate the  // FindLastIndex(Predicate) // Method using System; using System.Collections.Generic;

    class GFG {

    // Main Method     public static void Main()     {

    // List creation         // List name is "PC"         List PC = new List();

    // elements in the List         PC.Add("mouse");         PC.Add("keyboard");         PC.Add("laptop");         PC.Add("Computer");

    // using the method         int indx = PC.FindLastIndex(predi);

    Console.WriteLine(indx);     }

    // Conditional method     private static bool predi(string g)     {

    if (g == "Computer") {             return true;         }         else {             return false;         }     } } ```

    Output:

    ```cs 3

    ```

    例 2: 本例是上例的扩展形式。在本例中,我们使用一个 XML 文件搜索一个项目,并打印该项目的索引。如果没有找到该项目,则打印“-1”,如果找到,则打印索引。物品是“极客巧克力”。

    ```cs // C# Program to illustrate the  // FindLastIndex(Predicate) // Method using System; using System.Collections.Generic; using System.Linq;

    class GFG {

    // here List contains the     // object "gfg" using     // data from a sample XML file     // "geeks" is the List name     private static List geeks = new List();

    // Main Method     public static void Main()     {

    // if the item is found          // then it prints the index         // if not found prints "-1"         int x = geeks.FindLastIndex(FindGFG);         Console.WriteLine(x);      }

    // conditional method     private static bool FindGFG(gfg g)     {

    if (g.G == "GeeksForGeeks")         {             return true;         }         else {             return false;         }     } }

    public class gfg {

    public string G     {         get;         set;     } } ```

    Output:

    ```cs -1

    ```

    注:

    • 列表从最后一个元素开始向后搜索,到第一个元素结束。
    • 谓词是一个方法的委托,如果传递给它的对象与委托中定义的条件相匹配,则该委托返回真。当前列表的元素被单独传递给谓词委托。
    • 此方法执行线性搜索;因此,这个方法是一个 O(n)运算,其中 n 是 Count。

    参考: