當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# List FindLastIndex()方法用法及代碼示例


此方法用於搜索與指定謂詞定義的條件相匹配的元素,並返回List <T>或其一部分中最後一次出現的從零開始的索引。此方法的重載列表中有3種方法:

    • FindLastIndex(Predicate <T>)方法
    • FindLastIndex(Int32,Predicate <T>)方法
    • FindLastIndex(Int32,Int32,Predicate <T>)方法

在這裏,我們將僅討論第一種方法,即FindLastIndex(Predicate <T>)



List <T> .FindLastIndex(Predicate <T>)方法搜索與指定謂詞定義的條件匹配的元素,並返回整個List <T>中最後一次出現的從零開始的索引。

用法:

public int FindLastIndex (Predicate <T> match);

在此,匹配是謂詞<T>委托,該委托定義了要搜索的元素的條件。

返回值:如果找到該元素,則它將返回參數“match”與指定條件匹配的最後一個元素的int或Int32類型的從零開始的索引。如果未找到,則返回“-1”。

異常:如果該方法將拋出ArgumentNullExceptionmatch一片空白。

範例1:在本示例中,創建一個名為“PC”的列表,其中包含一些元素。我們的任務是找到一個名為“Computer”的元素並打印其索引。

// C# Program to illustrate the  
// FindLastIndex(Predicate<T>) 
// Method 
using System; 
using System.Collections.Generic; 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
  
        // List creation 
        // List name is "PC" 
        List<string> PC = new List<string>(); 
  
        // 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; 
        } 
    } 
}
輸出:
3

範例2:本示例是上一示例的擴展形式。在此示例中,我們使用XML文件並搜索一個項目並打印該項目的索引。如果找不到該項目,則打印“-1”,如果找到,則打印索引。該項目是\ “GeeksForGeeks”。

// C# Program to illustrate the  
// FindLastIndex(Predicate<T>) 
// Method 
using System; 
using System.Collections.Generic; 
using System.Linq; 
  
class GFG { 
  
    // here List<T> contains the 
    // object "gfg" using 
    // data from a sample XML file 
    // "geeks" is the List name 
    private static List<gfg> geeks = new List<gfg>(); 
  
    // 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; 
    } 
}
輸出:
-1

注意:

  • 從最後一個元素開始向後搜索第一個元素,向後搜索List <T>。
  • Predicate <T>是方法的委托,如果傳遞給它的對象與委托中定義的條件匹配,則該方法返回true。當前List <T>的元素分別傳遞給Predicate <T>委托。
  • 此方法執行線性搜索;因此,此方法是O(n)運算,其中n是Count。

參考:




相關用法


注:本文由純淨天空篩選整理自SoumikMondal大神的英文原創作品 List FindLastIndex() Method in C# | Set -1。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。