C#的Lambda表达式
2021/4/15 12:26:41
本文主要是介绍C#的Lambda表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一.作用
Lambda 表达式是一个匿名函数,用它可以高效简化代码,常用作委托,回调
Lambda 表达式都使用运算符=>,所以当你见到这个符号,基本上就是一个 Lambda 表达式
Lambda 运算符的左边是输入参数(),=>,右边是表达式或语句块
Lambda 表达式,是可以访问到外部变量的
下面是一个典型的查询Lambda
db.RndtSc.Where(p => p.SC == RV.ID).FirstOrDefault();
二.优势
Lambda表达式是为了简化C#的代码而出现的
Lambda表达式不用定义函数名,直接就是参数列表加函数体,避免了函数对命名空间的污染。下面这个就可以体现出来
(a,b)=>{return a+b;}
sum(a,b); public int sum(int a,int b){ return a+b; }
三.应用
使用where
var SCInfo = db.RndtSc.Where(p => p.SC == RV.ID).FirstOrDefault();
FirstOrDefault查询第一条数据
var SCInfo = db.RndtSc.Where(p => p.SC == RV.ID).FirstOrDefault();
ToList();查询数据的集合
var SCInfo = db.RndtSc.Where(p => p.SC == RV.ID).ToList();
Any返回一个布尔值有就true没有就false
var SCI2nfo = db.RndtSc.Where(p => p.SC == RV.ID).Any();
AsQueryable转换为泛型
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).AsQueryable(); Average 数学计算平均值
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Average(p => p.SC);
Concat连接二个数据源
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Concat(db.RndtSc);
Contains是否包含这个序列
RndtSc aa = new RndtSc();
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Contains(aa);
Count数学函数集合的数量
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Count();
DefaultIfEmpty返回指定序列如果序列为空返回类型参数的默认值
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).DefaultIfEmpty();
DeleteFromQuery 用于从所描述的查询中删除
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).DeleteFromQuery ();
Distinct 返回非重复的集合
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Distinct ();
返回指定的处的元素
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).ElementAt (1);
ElementType 返回指定处的元素如果超出索引返回默认值
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).ElementAtOrDefault (1);
返回指定元素的类型
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).ElementType ;
Equals返回指定对象是否相等
RndtSc aa = new RndtSc();
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Equals(aa) ;
Except返回二个差集
RndtSc aa = new RndtSc();
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).Except(db.RndtSc) ;
First返回序列的第一个元素
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).First();
First返回序列的第一个元素 如果不包含元素返回默认值
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).FirstOrDefault();
GroupBy个根据某个字段分组
var pesrson = db.RndtSc.Where(p => p.SC == RV.ID).GroupBy(p=> p.LABEL_FORMAT);
join使用二个序列进行关联
var result = persons.Join(cities, p => p.CityID, c => c.ID, (p, c) => new { PersonName = p.Name, CityName = c.Name });
Last获取最后一个元素
var result = persons.Last();
Last获取最后一个元素,如果没有就返回一个默认值
var result = persons.LastOrDefault();
返回该数组的所有元素的总和
var result = persons.Length;
返回该元素中的总数量
var result = persons.LongCount();
获得一个64位的整数所以维度的元素总和
var result = persons.LongLength;
返回该序列中的最大值
var result = persons.Max();
返回该序列中的最小值
var result = persons.Max();
升序对元素进行排列
var result = persons.OrderBy(P=> P.Name);
降序对元素进行排列
var result = persons.OrderByDescending(P=> P.Name)
返回元素的维度
var result = persons.Rank;
反转元素中的顺序
var result = persons.Reverse();
查询指定序列
var result = persons.Select(p=> p.Name);
处理过后指定序列
var result = persons.SelectMany(p=> p.Name);
序列比较
var result = persons.SequenceEqual(persons);
调过指定序列返回剩下的
var result = persons.Skip(12);
数学聚合返回合值
var result = db.RndtScAu.Sum(p => p.AU);
从序列开头返回几条数据
var result = db.RndtScAu.Take(10);
对某件键进行升序排序
var result = db.RndtScAu.ThenBy(p => p.AU);
对某件键进行降序排序
var result = db.RndtScAu.ThenByDescending(p => p.AU);
转换位一个数组
var result = db.RndtScAu.ToArray();
转换成一个list
var result = db.RndtScAu.ToList();
使用where条件筛选
var result = db.RndtScAu.Where(p=> p.SC==1)
这篇关于C#的Lambda表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具