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)

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C#中的Lambda表达式是一种简洁的语法形式,可以用来创建匿名函数。Lambda表达式通常用于函数式编程和LINQ查询。引用中提到,在日常使用C#编程的过程中,会经常使用到lambda表达式Lambda表达式使用=>运算符,将输入参数映射到函数体中的表达式表达式Lambda位于=>运算符右侧,称之为“表达式Lambda”。 Lambda表达式可以有一个或多个输入参数,并且可以返回一个值。在C#中,Lambda表达式的类型是委托类型,可以赋值给该委托类型的变量。 Lambda表达式的主体可以包含方法的调用,也可以只是一个表达式。当Lambda表达式只有一个表达式时,表示这里面只允许有一行代码。 例如,在C#中,可以使用Lambda表达式定义一个匿名方法,如下所示: ``` Func<int, int> func = x => x * 4; ``` 这个Lambda表达式接收一个int类型的参数x,并返回x乘以4的结果。可以通过调用func方法来使用Lambda表达式,例如: ``` int result1 = func(5); ``` 这样就可以得到x等于5时的结果。Lambda表达式还可以在表达式主体中调用其他方法,如下所示: ``` func = x => x * Add(3, 2); int result2 = func(5); ``` 这个Lambda表达式将x乘以Add(3, 2)的结果作为返回值。在这个例子中,Add是一个方法,接收两个int类型的参数x和y,并返回它们的和。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C# Lambda表达式](https://blog.csdn.net/qq_39847278/article/details/127525222)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因为有你更精彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值