C# Lambda常用表达式的写法
2021/8/19 12:06:07
本文主要是介绍C# Lambda常用表达式的写法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
整理常用的Lambda表达式,以便查询,好记性不如烂笔头,如下
1.select语句:
books.Select(p=>new { p.Title, p.UnitPrice, p.Author});//需用匿名方式
2.where语句:
books.Where(p=>p.UnitPrice==100&&p.Title=”ABC”);
补充:
像数据库中的LIKE ‘%c++%’,LAMBDA中用p.Title.Contains(“c++”)表示;
像数据库中的LIKE ‘c%’,LAMBDA中用p.Title.StartWith(“c”)表示;
像数据库中的LIKE ‘%c’,LAMBDA中用p.Title.EndsWith(“c”)表示;
Where的另一种表现形式:
books.Where(p=>{ var ret = p.UnitPrice>30&&p.Title.Contains(“c++”); return ret; });
3.排序语句:
像数据库中order by 升序:
通过 “对象.OrderBy(p=>p.UnitPrice)”实现
像数据库中order by 降序:
通过 “对象.OrderByDescending(p=>p.UnitPrice)”实现
像数据库中order by UnitPrice desc,Title asc:
通过 ”对象.OrderByDescending(p=>p.UnitPrice).ThenBy(p=>p.Title)”
反过来则是: ”对象.OrderBy(p=>p.UnitPrice).ThenByDescending(p=>p.Title)”
4.组函数:
var max = books.Where(p => p.CategoryId == 1001).Max(p => p.UnitPrice); var min = books.Min(p => p.UnitPrice); var count = books.Count( ); var avg = books.Average(p => p.UnitPrice); var sum = books.Sum(p => p.UnitPrice);
注意,上面这些获得的东西,不是对象,是单个值
5. GROUP BY函数
// select categoryid,max(unitpirce) from books group by categoryid having max(unitprice)>50 var list6 = books.GroupBy(p => p.CategoryId).Where(p=>p.Max(q=>q.UnitPrice)>50); foreach (var item in list6) { Response.Write(string.Format(' 类别编号:{0},最高价{1}', item.Key,item.Max(p=>p.UnitPrice))); }
6. TOP函数
//取一个范围 如top 3,5
var list7 = books.Skip(2).Take(3).Select(p => new { p.Title, p.CategoryId, p.UnitPrice }); // select top 5 var list7 = books.Take(5).OrderByDescending(p => p.UnitPrice) .Select(p => new { p.CategoryId, p.UnitPrice, p.Title, p.Author });
7.union 函数
books.Where(p => p.CategoryId == 1001) .Select(p => new { p.CategoryId, p.UnitPrice, p.Title, p.Author }) .Union(books.Where(p => p.CategoryId == 1002) .Select(p => new { p.CategoryId, p.UnitPrice, p.Title, p.Author }));
这里的Select子句中的列需对应,跟数据库中是一样的
8.Join方法,用于实现数据库中双表连接查询
//select a.title,a.unitprice,a.categoryid,b.id,b.name from books a,category b //where a.categoryid=b.id and b.name=‘数据库’ books.Join(cates.Where(m => m.Name == "数据库"),p => p.CategoryId, q => q.ID, (a, b) => new { a.Title, a.UnitPrice, a.CategoryId, b.ID, b.Name });
说明:
Join()方法的调用对象类似于在SQL语句中第一张表的表名
而Join()方法的第一个形参是第二张表表名的Where条件
Join()方法的第二和第三个参数分别表示第一张表与第二张表的关联字段
Join()方法的第四个参数表示从两表中需要获取的字段,(a, b)分别表示第一张表和第二张表
出处:
http://www.vnfan.com/helinbin/d/a6a8e1e7c8eaf200.html
版权申明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,立即删除。
这篇关于C# Lambda常用表达式的写法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 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#