zoukankan      html  css  js  c++  java
  • 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();
        输出:
  • 相关阅读:
    SpringBoot中添加事务
    隐藏样式
    Mybatis配置解析
    题目1064:反序数------玩转小聪明
    题目1063:整数和
    题目1062:分段函数23333333333333
    题目1060:完数VS盈数------这题做得我想骂人
    题目1059:abc----------就喜欢这样的题
    题目1050:完数-----------runtime error的问题
    题目1049:字符串去特定字符
  • 原文地址:https://www.cnblogs.com/zhaow/p/9753941.html
Copyright © 2011-2022 走看看