zoukankan      html  css  js  c++  java
  • 用委托、匿名函数、Lambda的方式输出符合要求的数

    最近看了一些博客,对委托和匿名函数和Lambda的方式有了一些更深的理解,在前人的基础上。我也写3个例子

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace LamdbaPricticeMine
    {
        class Program
        {
            delegate bool FilterDelegate(int num);
            
            
            static void Main(string[] args)
            {
                List<int> listNumbs = new List<int>();
                // 初始化listNumbs
                listNumbs.AddRange(new int[]{1,2,3,4,5,6});
    
    
                // 1、委托
                Console.WriteLine("用委托的方式输出符合要求的数");
                PrintNumByDelegate(listNumbs);
    
                // 2、匿名方法
                Console.WriteLine("用匿名函数的方式输出符合要求的数");
                PrintNumByDelegate(listNumbs);
    
                // 3、Lambda表达式
                Console.WriteLine("用Lambda的方式输出符合要求的数");
                PrintNumByLambdaExpression(listNumbs);
                Console.ReadLine();
            }
    
            #region 用委托实现两个数相加
    
            // 调用将委托作为参数的方法,并将实现的方法当做参数
            static void PrintNumByDelegate(List<int> listNums)
            {
                PrintNumByDelegate(listNums, FilterDelegateEven);
            }
            // 定义一个将委托作为参数的方法
            static void PrintNumByDelegate(List<int> listNumbs, FilterDelegate selectNums)
            {
                foreach (int item in listNumbs)
                {
                    if (selectNums(item))
                    {
                        Console.WriteLine(item);
                    }
                }
            }
            // 定义一个类似于委托的实现(偶数)
            static bool FilterDelegateEven(int num)
            {
                return num % 2 == 0;
            }
            // 定义第二个委托的实现(基数)
            static bool FilterDelegateOdd(int num)
            {
                return num % 2 == 1;
            }
            #endregion
    
    
            #region 匿名函数
            static void PrintNumByAnonymousMethod(List<int> listNums)
            {
                listNums.FindAll(
                       delegate(int num)
                       {
                           if (num % 2 == 0)
                           {
                               Console.WriteLine(num);
                               return true;
                           }
                           else
                           {
                               return false;
                           }
                       }
                   );
    
            } 
            #endregion
    
            #region 用Lambda的方式
            static void PrintNumByLambdaExpression(List<int> listNums)
            {
                listNums.FindAll((int num) =>
                {
                    if (num % 2 == 0)
                    {
                        Console.WriteLine(num); return true;
                    }
                    else
                    {
                        return false;
                    }
                });
            } 
            #endregion
    
           
        }
    }
  • 相关阅读:
    Python-函数
    Python-运数符
    Python-条件判断
    Python-变量
    移动端页面布局的那些事儿
    关于ie7下display:inline-block;不支持的解决方案
    SuperSlidev2.1 轮播图片和无缝滚动
    解决xmapp中Apache端口号占用问题
    npm 常用命令详解
    python函数总结
  • 原文地址:https://www.cnblogs.com/honghong75042/p/4331931.html
Copyright © 2011-2022 走看看