【.NET基础】Linq常用语法代码演示

简介: 前言:前言不重要,linq入门常用的语法,linq语法可以用来写操作集合、数据库表集合等等几乎所有集合类型的操作。下面就写几个案例(以List集合来做的),看代码和运行结果即可。


前言:前言不重要,linq入门常用的语法,linq语法可以用来写操作集合、数据库表集合等等几乎所有集合类型的操作。下面就写几个案例(以List集合来做的),看代码和运行结果即可。


本文演示环境:VS2022 + .NET 6

 

1、创建一个.NET 6.0的控制台项目,用来演示测试和输出。


1995789-20220712213432562-654453717.png

 

2、然后新增两个实体类,用于后续做测试使用,包括关联查询等。


1995789-20220712213449376-227795122.png

 

3、初始化一丢丢数据,当做测试的原始数据。


1995789-20220712213459301-178330103.png


4、先运行下,看下当前数据集合的结果集是怎么样的。此处以Json格式展示,以下其他输出也一样,都是用Json数据输出,比较好对比。


1995789-20220712213509930-1355712839.png


5、先玩一下最简单的lambda表达式的查询方法,以下只是最基本的操作,还有很多别的扩展使用方法,待自己发现。


1995789-20220712213518668-23389001.png


6、lambda表达式的操作方法,也可以对查询结果字段进行起别名。

 1995789-20220712213529058-769538761.png


7、有一个很好用的判断集合是否存在数据的,直接使用 Any。 Any里面也可以写lambda表达式,例如 xxx.Any(x=>x.Id==2) ,如果结果为True,代表集合里面存在字段Id为2的数据。不存在即为False。

 1995789-20220712213539566-42100977.png


8、linq语法,最简单的查询方式,from 集合/表的别名 in 集合/表 where 条件 select 字段集合;


1995789-20220712213548232-1403964599.png

 

9、同样的,linq语法里面的查询结果字段名,也可以起别名。

 1995789-20220712213557704-1123414944.png


10、可以通过orderby对指定的字段进行排序。也可以多个字段并列排序,同时存在升序和降序,待自己发现。


1995789-20220712213608921-84696241.png

 

11、也可以关联查询,关联查询最简单的查询语法书  from 表1别名 in 表1 join 表2别名 in 表2 on 表1.字段 equals 表2.字段 select 需要筛查的字段;


也可以继续拓展出和表3的关联查询、表4的关联查询,等等……


1995789-20220712213619067-238277037.png

 

12、关联查询也一样可以使用Where语句进行约束条件。


1995789-20220712213629312-346488059.png


13、也可以进行分组查询。group 后面接的是最终需要查询的结果集字段。


1995789-20220712213641493-1531086934.png

 

14、结果集字段同样支持别名、指定字段等等。


1995789-20220712213651880-329438571.png

 

15、以上就是该文章的全部内容,内容很简单,希望对初学者或者入门的小伙伴会有帮助。当然,上面的演示都是非常基础和简单的,平常使用ORM进行操作数据库、或者操作其他集合,例如DbSet、IEnumerable等等类型的,也都可以支持这么操作。这样可以避免直接写SQL语句进行操作数据库可能产生的一些不好的情景,例如切换另一个品牌的数据库之类的,就可能需要重写SQL语句了;而使用Linq语法就可以一定程度上避免存在这样的情况,毕竟可以面向实体,只要保证实体没变,就可以不担心数据库切换了,代码也就不需要更改了。


如果觉得文章有帮助,欢迎点赞推荐、转发【本文链接:https://www.cnblogs.com/weskynet/p/16471967.html 】和留言,谢谢。


目录
相关文章
|
4月前
|
SQL 开发框架 .NET
|
4月前
|
XML SQL 开发框架
|
4月前
【易懂讲解】VB.NET 基础语法,让你快速掌握
【易懂讲解】VB.NET 基础语法,让你快速掌握
52 0
|
1月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
158 2
|
1月前
|
开发框架 安全 .NET
C# .NET面试系列一:基础语法
<h2>基础语法 #### 1. 字符串中 string str = null 和 string str = "" 和 string str = string.Empty 的区别? string str=null: ```c# 这表示字符串变量str被初始化为null,即它不引用任何对象。这与空字符串是不同的,因为空字符串是一个具有零长度的字符串对象,不会分配内存空间 ``` string.Empty: ```c# 这表示字符串变量str被初始化为空字符串,即一个具有零长度的字符串对象。这与null是不同的,因为str引用了一个空字符串对象 ``` string str="" :
64 1
|
4月前
|
开发框架 .NET
|
4月前
|
开发框架 .NET C#
|
4月前
|
程序员 数据库
VB.NET—Bug调试(参数话查询、附近语法错误)
VB.NET—Bug调试(参数话查询、附近语法错误)
25 0
|
9月前
|
开发框架 前端开发 .NET
ASP.NET Core MVC 从入门到精通之Razor语法
ASP.NET Core MVC 从入门到精通之Razor语法
93 0
|
存储 开发框架 .NET
.net必问的面试题系列之基本概念和语法
.net必问的面试题系列之基本概念和语法上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉。1.net必问的面试题系列之基本概念和语法2.
1366 0