• c#中Lamdba匿名函数查询语句


    Lamdba:匿名方法、匿名函数:避免每次使用方法的时候都去定义一个方法  语法:(参数列表)=>{方法体};

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace CSharp
    {
        /// <summary>
        /// Lamdba:匿名方法、匿名函数:避免每次使用方法的时候都去定义一个方法  语法:(参数列表)=>{方法体};
        /// </summary>
        class Lamdba
        {
            //lamdba 语法:(参数列表)=>{方法体}
            //几种写法:无参无返回值()=>{ }; 一个参数一个返回值的lamdba写法(a)=>{return a*a}; 二个参数一个返回值的lamdba写法:(a,b)=>{return a+b;}
            //另外经常使用查询集合用到,如:List<int> l = 集合名.where(a=>a==条件).ToList(); //a是泛型,数据是int那么a就是int
            //多条件:集合名.where(a=>(a.字段1==条件||a.字段1==条件)&&(a.字段2==条件||a.字段2==条件));
            static void Main(string[] arge)
            {
                //配合系统委托来学习Lamdba的使用
                Func<double, double> func = (a) => { return a * a; };
                Console.WriteLine("一个参数一个返回值的lamdba方法:" + func(3));
    
    
                //**********************************************************************************************************************
                //系统Lamdba 扩展方法:查询集合返回一个集合。语法:集合名.where(a =>a==条件); a集合里边装的内容:如果集合里边装的字符串a表示字符串,如果集合里边装的Int则a表示Int
                List<string> ilist = new List<string>() { "陈一", "小二", "张三", "李四", "王五", "赵六", "西瓜", "香瓜", "木瓜", "香菜", "香逗" };
    
                Console.Write("请输入你需要查询的内容:");
                string str = Console.ReadLine();//接收用户输入的值
    
                //lamdba查询内存集合的写法
                List<string> rsult = ilist.Where(a => a.Contains(str)).ToList();//模糊查询,查询集合返回一个集合
    
                Console.WriteLine("一般的foreach遍历");
                foreach (string itme in rsult)
                {
                    Console.WriteLine(itme);
                }
    
                Console.WriteLine("foreach内部实现原理");
                rsult.ForEach(item => { Console.WriteLine(item); });
    
    
                //做一个精准匹配返回单个值 First()或者是FirstorDefault();
                //string strs = ilist.Where(a => a == str).First();//找不到就报错
                //Console.WriteLine("First精准匹配的返回值:" + strs);
    
                string strss = ilist.Where(a => a == str).FirstOrDefault(); //找不到就赋空值
                Console.WriteLine("FirstOrDefault的返回值:" + strss); //Where(a => a.Contains(str))模糊查询,上面是精准查询
    
                //************************************************************************************************************************
                //系统自带的委托
                //Action 满足0 到16个参数  没有返回值的泛型委托
                Action act1 = () => { };//没有参数  就一个空的小括号
                Action<int> act2 = i => { };//一个参数,可以去掉小括号
                Action<int, string> act3 = (id, name) => Console.WriteLine("这里是DoNothingWithPara");
                Action<int, int, string, DateTime, int, int, string, DateTime, int, int, string, DateTime, int, int, string, DateTime> act17 = null;
    
                //Action 满足0 到16个参数  带返回值的泛型委托
                Func<int> func1 = () => 1;//如果方法体只有一行,还要去掉return
                Func<int, string> func2 = i => i.ToString();
                Func<int, int, int, string, DateTime, int, int, string, DateTime, int, int, string, DateTime, int, int, string, DateTime> fun17 = null;
    
    
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    结对-四则运算-最终程序
    结对- 四则运算器-结对项目总结
    课后作业-阅读任务-阅读提问-3
    课后作业-现代软件工程-阅读笔记
    软件工程课程总结
    团队-学生成绩管理一阶段互评
    结对-英文词频检测程序-测试过程
    团队-学生成绩管理-项目进度
    团队-学生成绩管理-模块开发过程
    eclipse下的文件路径问题
  • 原文地址:https://www.cnblogs.com/longxinyv/p/14435779.html
Copyright © 2020-2023  润新知