CS5L13——LINQ入门实例
CS5L13——LINQ入门实例
LINQ
语言集成查询(Language-Integrated Query),也就是LINQ
语言集成的含义是,当你想对一个集合做查询操作时,
不再需要额外引用第三方库,而是可以直接使用原生的语法获取。
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。
数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。
此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。
借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。
查询表达式采用声明性 查询语法 编写而成。
使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。
可使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据。
-
LINQ可用于查询以下集合
- .NET 原生集合(
List
,Array
,Dictionary
等) - SQL 数据库 (尤其是搭配ORM)
- XML 文档
- JSON 文档(需要
Newtonsoft.Json
)
- .NET 原生集合(
-
LINQ的常见功能
- 排序、筛选、选择
- 分组、聚合、合并
- 最大值、最小值、求和、求平均
- …
-
LINQ语法有两种形式,它们各有各自的适用场景
-
查询表达式 query expression(类似于SQL语句)
1
2
3var result = from x in list
/*..LINQ操作(这里换行不需要使用;)..*/
select x; -
链式表达式 chained expression(如同对一个对象连续调用方法那样,其实LINQ的本质就是对集合接口的拓展方法)
1
2
3var result = list
.Where(n => n % 2 == 0 && n >= 4)
.OrderBy(n => n);
-
简单来说,接下来所展示的LINQ语法,很大程度上可以用来替代和简化一些通过 for
和 foreach
遍历集合来实现的排序查询等操作
LINQ相关内容
- 筛选和排序
- 求两个数据集合的交集
- 使用分组统计出现频率
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!