二、LINQ

news/2024/10/23 7:22:11/

文章目录

  • 一、LINQ概述与查询语法
  • 二、LINQ方法语法基础
  • 三、LINQ聚合操作与元素操作
  • 四、数据类型转换

LINQ(Language Integrated Query,语言集成查询),可为C#语法提供强大的查询功能。

一、LINQ概述与查询语法

LINQ提供了一种跨数据源和数据格式 的统一模型,实现查询。它使用C#等语言以查询数据库相同的方式查询内存数据。

LINQ的编写从from关键字开始,结合使用whereselect等关键字,实现各种条件的查询。

LINQ主要关键字:

关键字说明
from指定范围变量和数据源
where根据bool表达式从数据源中筛选数据
select指定查询结果中的元素所具有的类型或表现形式
group对查询结果按照键/值执行分组
into提供一个标识符,它可以充当对join、group或select字句结果的引用
orderby对查询出的元素执行排序(ascending/descending)
join按照两个指定匹配条件对等连接两个数据源
let产生一个用于存储子表达式查询结果的范围变量

完整的LINQ语句的写法可以定义为以下结构:

举例1:
代码截图:
在这里插入图片描述
效果图:
在这里插入图片描述
举例2:
首先定义两个类,分别是:Product和Employees
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主程序中的代码:
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Program{static void Main(string[] args){List<Product> products = new List<Product>() {new Product{Name="iphone11",CategoryID="手机"},new Product{Name="香蕉",CategoryID="水果"},new Product{Name="辣条",CategoryID="零食"},new Product{Name="葡萄",CategoryID="水果"}};var result = from p in productsselect p;foreach (var item in result){Console.WriteLine($"商品名称:{item.Name},商品类别:{item.CategoryID}");}}}
}

最终效果图:
在这里插入图片描述
如果我们只需要查询水果,其他代码不变,只需要改如下代码即可
在这里插入图片描述
效果图:
在这里插入图片描述
如果我们需要根据产品的类别进行分组查询:
在这里插入图片描述
效果图:
在这里插入图片描述
如果想查询每个类别所对应的数量:
在这里插入图片描述
效果图:
在这里插入图片描述
之前我们定义了一个Employees类,一直没有用到,所以接下来举个类似的例子:
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Program{static void Main(string[] args){List<Employees> employees = new List<Employees>(){new Employees{LastName="张三",TitleOfCourtesy="助理设计师"},new Employees{LastName="李四",TitleOfCourtesy="软件设计师"},new Employees{LastName="赵六",TitleOfCourtesy="助理设计师"},new Employees{LastName="王五",TitleOfCourtesy="软件设计师"},new Employees{LastName="小明",TitleOfCourtesy="系统分析师"}};var result = from p in employeesselect new { LastName = p.LastName, TitleOfCourtesy = p.TitleOfCourtesy }into EmployeesListorderby EmployeesList.TitleOfCourtesy ascendingselect EmployeesList;//ascending 升序排序//descending 降序排序foreach (var item in result){Console.WriteLine("员工姓名:{0},员工职务:{1}",item.LastName,item.TitleOfCourtesy);}}}
}

效果图:
在这里插入图片描述

二、LINQ方法语法基础

三、LINQ聚合操作与元素操作

四、数据类型转换


http://www.ppmy.cn/news/470563.html

相关文章

L2-2 列车调度

火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口&#xff08;Entrance&#xff09;轨道和一条出口&#xff08;Exit&#xff09;轨道&#xff0c;它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入&#xff0c;最后从出口离开。在图中有9趟列车&am…

RLx2~~

大模型时代&#xff0c;模型压缩和加速显得尤为重要。传统监督学习可通过稀疏神经网络实现模型压缩和加速&#xff0c;那么同样需要大量计算开销的强化学习任务可以基于稀疏网络进行训练吗&#xff1f;本文提出了一种强化学习专用稀疏训练框架&#xff0c;可以节省至多 95% 的训…

DQL2

/* DQL标准语法结构:编写DQL一定要严格按照此语法的顺序来实现&#xff01; SELECT [ALL | DISTINCT] ALL表示查询出所有的内容 DISTINCT 去重 {* | 表名.* | 表名.字段名[ AS 别名][,…]} 指定查询出的字段的 FROM 表名[AS 别名][,表1… AS 别名] [INNER | [LEFT | RIGHT] [OU…

Hql(01)

一&#xff1a;什么是Hql HQL是Hibernate Query Language的缩写&#xff0c;提供更加丰富灵活、更为强大的查询能力&#xff1b;HQL更接近SQL语句查询语法。 二&#xff1a;hql和sql区别/异同&#xff08;面试题&#xff09; HQL S…

HQL(二)

一、写BaseDao 需求&#xff1a; 按名字分页查询对应书籍信息 我们用hql是想我们的需求&#xff0c;是这样的&#xff1a; public List<Book> list1(Book book,PageBean pageBean){Session session SessionFactoryUtils.getSession();Transaction transaction sess…

蓝桥杯Java知识准备

1.输入输出 提到了几个IO类&#xff0c;这里推荐使用BufferedReader输入&#xff0c;BufferedWriter输出&#xff0c;当输入输出的数据量大于一百万左右就必须使用快速IO不能直接使用Scanne和System.out.print。 1.1 正常输入输出 输入 首先定义一个Scanner对象&#xff0c…

lq到底是什么意思_LQ是什么意思..?!谁知道..!?

导航:网站首页 > LQ是什么意思..?!谁知道..!? LQ是什么意思..?!谁知道..!? 匿名网友: 导商Leading Quotient——LQ。 导商即为领导商,是指一个人领导、指导、引导、带领他人或团队组织的智慧和能力的商数。 导商既取决于领导理论与方式,又取决于领导环境与气氛;既取…

qml-2 定位

xyz布局定位 继承体系 Button ->AbstractButton->Control->Item->QQuickItem 介绍&#xff1a;The QQuickItem class provides the most basic of all visual items in Qt Quick 属性&#xff1a; x : qreal Defines the items x position relative to its pa…