码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-10-08 15:04:05      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:应用   nbsp   turn   this   并且   lte   bubuko   图片   bsp   

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();
    输出:
技术分享图片

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

标签:应用   nbsp   turn   this   并且   lte   bubuko   图片   bsp   

原文地址:https://www.cnblogs.com/zhaow/p/9753941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!