List
列表的属性:
- 它与数组不同。列表可以动态调整大小,但数组则不能。
- 列表类可以接受null作为引用类型的有效值,并且还允许重复的元素。
- 如果计数等于容量,则列表的容量将通过重新分配内部数组而自动增加。在添加新元素之前,现有元素将被复制到新数组。
句法:
public T FindLast (Predicate match);
范围:
match: It is the Predicate
返回值:如果找到该元素,则此方法将返回与指定谓词定义的条件相匹配的最后一个元素,否则将返回类型T的默认值。
异常:如果匹配为null,则此方法将提供ArgumentNullException。
下面的程序说明了List
范例1:
// C# Program to get the last occurrence
// of the element that match the specified
// conditions defined by the predicate
using System;
using System.Collections;
using System.Collections.Generic;
class Geeks {
// function which checks whether an
// element is even or not. Or you can
// say it is the specified condition
private static bool isEven(int i)
{
return ((i % 2) == 0);
}
// Main Method
public static void Main(String[] args)
{
// Creating an List of Integers
List firstlist = new List();
// Adding elements to List
firstlist.Add(4);
firstlist.Add(2);
firstlist.Add(7);
firstlist.Add(2);
firstlist.Add(6);
firstlist.Add(4);
firstlist.Add(3);
Console.WriteLine("Elements Present in List:\n");
int p = 0;
// Displaying the elements of List
foreach(int k in firstlist)
{
Console.Write("At Position {0}: ", p);
Console.WriteLine(k);
p++;
}
Console.WriteLine(" ");
// Will give the last occurrence of the
// element of firstlist that match the
// conditions defined by predicate
Console.Write("Index of Last element that fullfill the conditions: ");
Console.WriteLine(firstlist.LastIndexOf(firstlist.FindLast(isEven)));
Console.Write("Element is: ");
Console.Write((firstlist.FindLast(isEven)));
}
}
输出:
Elements Present in List:
At Position 0: 4
At Position 1: 2
At Position 2: 7
At Position 3: 2
At Position 4: 6
At Position 5: 4
At Position 6: 3
Index of Last element that fullfill the conditions: 5
Element is: 4
范例2:
// C# Program to get the last occurrence
// of the element that match the specified
// conditions defined by the predicate
using System;
using System.Collections;
using System.Collections.Generic;
class Geeks {
// function which checks whether an
// element is even or not. Or you can
// say it is the specified condition
private static bool isEven(int i)
{
return ((i % 2) == 0);
}
// Main Method
public static void Main(String[] args)
{
// Creating an List of Integers
List firstlist = new List();
// Adding elements to List
firstlist.Add(17);
firstlist.Add(19);
firstlist.Add(21);
firstlist.Add(9);
firstlist.Add(75);
firstlist.Add(19);
firstlist.Add(73);
Console.WriteLine("Elements Present in List:\n");
int p = 0;
// Displaying the elements of List
foreach(int k in firstlist)
{
Console.Write("At Position {0}: ", p);
Console.WriteLine(k);
p++;
}
Console.WriteLine(" ");
// it will return index -1 as no element
// found in the list which specified
// the conditions and so element value
// will be 0 as the list contains Integers
Console.Write("Index of Last element that fullfill the conditions: ");
Console.WriteLine(firstlist.LastIndexOf(firstlist.FindLast(isEven)));
Console.Write("Element is: ");
Console.Write((firstlist.FindLast(isEven)));
}
}
输出:
Elements Present in List:
At Position 0: 17
At Position 1: 19
At Position 2: 21
At Position 3: 9
At Position 4: 75
At Position 5: 19
At Position 6: 73
Index of Last element that fullfill the conditions: -1
Element is: 0
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.generic.list-1.findlast?view=netframework-4.7.2