LINQ 标准查询操作符详解:Select 和 SelectMany
76 浏览量
更新于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
最新资源
- ActionScript.3.0.Cookbook.中文完整版
- Excel 金融计算教程
- 短信平台说明,提供ACTIVEX组件源代码 VC6++
- 接口与通讯精品讲义(工业自动化)
- GSM11.11 version 8.3.0 Release 1999
- 70-526: TS: Microsoft .NET Framework 2.0 - Windows-based Client Development
- FLASH四宝贝之-使用ActionScript.3.0组件
- DOS批处理高级教程精选合编
- S7-200通讯的编程步骤
- 电大程序设计基础复习题
- ARM系列嵌入式调试笔记
- db2 9 xml guide DB2 9 XML指南
- 高质量c++编程(林锐).pdf
- 复习的好资料 网络习题
- C8051系列单片机的选型
- 郭天翔 单片机 大学经历