LINQ 标准查询操作符详解:Select 和 SelectMany
118 浏览量
更新于2024-08-29
收藏 173KB PDF 举报
LINQ 标准查询操作符
LINQ(Language Integrated Query)是一种强大的查询语言,允许开发者使用 SQL 语句风格的语法来查询各种数据源。LINQ 提供了一组标准查询操作符,用于对数据源进行查询、过滤、排序、分组和投影等操作。本文将详细介绍 LINQ 的标准查询操作符,包括投影操作符、过滤操作符、排序操作符、分组操作符和聚合操作符等。
一、投影操作符
投影操作符用于将数据源中的数据转换为所需的格式。常用的投影操作符有 Select 和 SelectMany。
1. Select
Select 操作符对单个序列或集合中的值进行投影。例如,下面的示例中使用 Select 从序列中返回 Employee 表的所有列:
```csharp
using (NorthwindDataContext db = new NorthwindDataContext())
{
// 查询语法
var query = from e in db.Employees
where e.FirstName.StartsWith("M")
select e;
// 方法语法
var q = db.Employees
.Where(e => e.FirstName.StartsWith("M"))
.Select(e => e);
foreach (var item in query)
{
Console.WriteLine(item.FirstName);
}
}
```
当然,你也可以返回单个列,例如:
```csharp
var query = from e in db.Employees
where e.FirstName.StartsWith("M")
select e.FirstName;
```
你也可以返回序列中的某几列,例如:
```csharp
var query = from e in db.Employees
where e.FirstName.StartsWith("M")
select new
{
e.FirstName,
e.LastName,
e.Title
};
```
2. SelectMany
SelectMany 操作符提供了将多个 from 子句组合起来的功能,它将每个对象的结果合并成单个序列。例如:
```csharp
using (NorthwindDataContext db = new NorthwindDataContext())
{
// 查询语法
var query = from e in db.Employees
from o in e.Orders
select o;
// 方法语法
var q = db.Employees
.SelectMany(e => e.Orders);
foreach (var item in query)
{
Console.WriteLine(item.OrderID);
}
}
```
二、过滤操作符
过滤操作符用于筛选数据源中的数据。常用的过滤操作符有 Where 和 OfType。
1. Where
Where 操作符用于筛选数据源中的数据。例如:
```csharp
var query = from e in db.Employees
where e.FirstName.StartsWith("M")
select e;
```
2. OfType
OfType 操作符用于筛选指定类型的数据。例如:
```csharp
var query = from e in db.Employees.OfType<Employee>()
where e.FirstName.StartsWith("M")
select e;
```
三、排序操作符
排序操作符用于对数据源中的数据进行排序。常用的排序操作符有 OrderBy 和 ThenBy。
1. OrderBy
OrderBy 操作符用于对数据源中的数据进行升序排序。例如:
```csharp
var query = from e in db.Employees
orderby e.FirstName
select e;
```
2. ThenBy
ThenBy 操作符用于对数据源中的数据进行降序排序。例如:
```csharp
var query = from e in db.Employees
orderby e.FirstName
thenby e.LastName
select e;
```
四、分组操作符
分组操作符用于对数据源中的数据进行分组。常用的分组操作符有 GroupBy 和 GroupByInto。
1. GroupBy
GroupBy 操作符用于对数据源中的数据进行分组。例如:
```csharp
var query = from e in db.Employees
group e by e.DepartmentID into g
select new
{
DepartmentID = g.Key,
EmployeeCount = g.Count()
};
```
2. GroupByInto
GroupByInto 操作符用于对数据源中的数据进行分组,并对每个组进行聚合操作。例如:
```csharp
var query = from e in db.Employees
group e by e.DepartmentID into g
select new
{
DepartmentID = g.Key,
EmployeeCount = g.Count(),
TotalSalary = g.Sum(e => e.Salary)
};
```
五、聚合操作符
聚合操作符用于对数据源中的数据进行聚合操作。常用的聚合操作符有 Sum、Average、Max、Min、Count 等。
1. Sum
Sum 操作符用于计算数据源中的总和。例如:
```csharp
var sum = db.Employees.Sum(e => e.Salary);
```
2. Average
Average 操作符用于计算数据源中的平均值。例如:
```csharp
var average = db.Employees.Average(e => e.Salary);
```
3. Max
Max 操作符用于计算数据源中的最大值。例如:
```csharp
var max = db.Employees.Max(e => e.Salary);
```
4. Min
Min 操作符用于计算数据源中的最小值。例如:
```csharp
var min = db.Employees.Min(e => e.Salary);
```
5. Count
Count 操作符用于计算数据源中的记录数。例如:
```csharp
var count = db.Employees.Count();
```
LINQ 的标准查询操作符提供了一种强大且灵活的方式来查询和处理数据。通过了解这些操作符的使用方法,你可以更好地使用 LINQ 来解决实际问题。
2011-05-20 上传
2010-02-03 上传
2021-10-11 上传
点击了解资源详情
点击了解资源详情
2010-12-30 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38707192
- 粉丝: 3
- 资源: 921
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程