• 委托笔记


    下面来调用这个方法,看一下委托的具体使用方法

       /// <summary>
        /// 实体模型
        /// </summary>
        public class Student
        {
            /// <summary>
            /// ID
            /// </summary>
            public string Id { get; set; }
            /// <summary>
            /// 名称
            /// </summary>
            public string Name { get; set; }
        }
         
        /// 扩展方法   
        public static class DelegateExtend
        {
            
            /// 模仿Linq的Where操作
            
            /// <typeparam name="T"></typeparam>
            /// <param name="scoure">数据源</param>
            /// <param name="func">委托(自定义bool条件)</param>
            /// <returns></returns>
            public static IEnumerable<T> ExtWhere<T>(this IEnumerable<T> scoure, Func<T, bool> func)
            {
                //遍历数据源的数据
                foreach (var item in scoure)
                {
                    //请求委托完成条件的筛选返回bool
                    bool bResult = func(item);
                    //把通过筛选提交的数据源,返回出去
                    if (bResult)
                    {
                        yield return item;
                    }
                }
            }
        }
         
        /// 扩展方法   
        public static class DelegateExtend
        {        
            /// 模仿Linq的Where操作        
            /// <typeparam name="T"></typeparam>
            /// <param name="scoure">数据源</param>
            /// <param name="func">委托(自定义bool条件)</param>
            /// <returns></returns>
            public static IEnumerable<T> ExtWhere<T>(this IEnumerable<T> scoure, Func<T, bool> func)
            {
                //遍历数据源的数据
                foreach (var item in scoure)
                {
                    //请求委托完成条件的筛选返回bool
                    bool bResult = func(item);//查看 id是不是等于1,如果等于1就直接yield直接返回
                    //把通过筛选提交的数据源,返回出去
                    if (bResult)
                    {
                        yield return item;
                    }
                }
            }
        }
                //查询出所有数据
                IEnumerable<Student> student = sql.QueryList<Student>();
    第一种
    //定义一个匿名方法,并赋值给委托 这个写法挺新奇
    //传入一个类型,返回一个bool值,后面用deletegate() 直接就行 Func<Student, bool> func = delegate(Student s) { //自定义代码逻辑,返回bool类型 return s.Id.Equals("1"); };
    //传入委托 IEnumerable<Student> list = student.ExtWhere(func);        //第二种方法,使用linq语法(自定义逻辑) IEnumerable<Student> list1 = student.ExtWhere(p => p.Id.Equals("1"));
    人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
  • 相关阅读:
    VSCode的终端修改
    vim总结
    分布式的CAP理论
    MongoDB常用命令总结
    nginx负载均衡总结
    【重要】nginx location配置和rewrite写法
    Linux四剑客find/grep/awk/sed
    IDEA插件开发总结
    支付宝在线支付接口开发流程
    Centos7 网卡Device does not seem to be present解决办法
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/15407464.html
Copyright © 2020-2023  润新知