• Func<>委托、扩展方法、yield、linq ForEach综合运用


    1、先定义一个Model类
        public class P1
        {
            public string name { get; set; }
            public int age { get; set; }
        }
        
    2、定义一个扩展方法
        作用:用于处理集合数据,通过传入一个委托来实现
        注意,扩展方法必须定义在静态类中,而且方法本身也是静态的。
        public static class ExtendMethod
        {
            public static IEnumerable<P1> Filter1(this IEnumerable<P1> p1s, Func<P1, bool> param)
            {
                foreach (P1 item in p1s)
                {
                    if (param(item))
                    {
                        yield return item;
                    }
                }
            }
        }
        
    3、应用扩展方法处理数据,并且ForEach输出处理后的数据:
        IList<P1> lst = new List<P1>();
        lst.Add(new P1 { name = "张三", age = 19 });
        lst.Add(new P1 { name = "李四", age = 20 });
        lst.Add(new P1 { name = "王五", age = 28 });
        lst.Add(new P1 { name = "赵六", age = 30 });
        lst.Where(p => p.age > 18).Filter1(a => a.age < 30).ToList().ForEach((f) => { Console.WriteLine(f.name + "," + f.age); });

        Console.ReadKey();
        输出:
  • 相关阅读:
    [bzoj1251]序列终结者
    Codeforces #Round 406(Div.2)
    [3.23校内训练赛]
    [APIO2009]
    [APIO2016]
    [bzoj1901]动态区间k大
    [9018/1904]火星商店
    [bzoj3673/3674可持久化并查集加强版]
    [bzoj1297][SCOI2009]迷路
    [bzoj1218][HNOI2003]激光炸弹
  • 原文地址:https://www.cnblogs.com/zhaow/p/9753941.html
Copyright © 2020-2023  润新知