C#中 用List.RemoveAll 删除指定元素、交集元素

用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}

猜你喜欢

转载自blog.csdn.net/Dust_Evc/article/details/114986205
今日推荐