zoukankan      html  css  js  c++  java
  • 委托笔记

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

       /// <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"));
    人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
  • 相关阅读:
    取得元素节点的默认display值
    mass Framework emitter模块 v2
    memset函数详细说明
    八大排序算法总结
    电脑很卡,怎么办?这里帮你解决
    Android APK反编译详解(附图)
    java环境变量配置
    如何使用U盘安装操作系统 安装GHOST XP, xp纯净版
    c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
    Js apply 方法 详解
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/15407464.html
Copyright © 2011-2022 走看看