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();
        }
    }
}

 

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

上一篇:SQL注入(execute()之下)


下一篇:sql 把一个表中的某一列赋值到另一个表中的某一列