用List.RemoveAll(Predicate<T> match)方法,关键是其参数格式 Predicate<T> match 难以理解,其中Predicate为对方法的委托,会根据传递的对象和委托中的定义是否匹配来返回true和false,委托通过Lambda表达式实现。
最好的理解方式还是学习代码示例,如下几个代码示例,展示其用法:
static List<Object> list = new List<Object>() { 1,2,5,"b","c"};
static List<Object> list1 = new List<Object>() { 1, 2, 3,"a","c" };
static void Main(string[] args)
{
list1.RemoveAll(data => list.Contains(data)); //【★★关键★★】
foreach (Object i in list1)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
list1 删除 list 中包含的元素(交集),结果元素为{3, "b"}
using System;
using System.Collections.Generic;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
var intList = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8 };
intList.RemoveAll(n => n > 3); //【★★关键★★】
foreach (var item in intList)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
intList的结果元素为{1, 2, 3}
因篇幅问题不能全部显示,请点此查看更多更全内容