此方法用于搜索与指定谓词定义的条件相匹配的元素,并返回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。
参考:
相关用法
- C# List FindLastIndex()函数用法及代码示例
- C# List.TrimExcess用法及代码示例
- C# List BinarySearch()用法及代码示例
- C# List.FindIndex()用法及代码示例
- C++ list insert()用法及代码示例
- C++ list get_allocator用法及代码示例
注:本文由纯净天空筛选整理自SoumikMondal大神的英文原创作品 List FindLastIndex() Method in C# | Set -1。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。