CS5L13——LINQ入门实例

LINQ

语言集成查询(Language-Integrated Query),也就是LINQ
语言集成的含义是,当你想对一个集合做查询操作时,
不再需要额外引用第三方库,而是可以直接使用原生的语法获取。

语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。
数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。
此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。
借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。

对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。
查询表达式采用声明性 查询语法 编写而成。
使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。
可使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据。

C# 中的语言集成查询 (LINQ) | Microsoft Learn

  • LINQ可用于查询以下集合

    • .NET 原生集合(List​,Array​,Dictionary​ 等)
    • SQL 数据库 (尤其是搭配ORM)
    • XML 文档
    • JSON 文档(需要 Newtonsoft.Json​)
  • LINQ的常见功能

    • 排序、筛选、选择
    • 分组、聚合、合并
    • 最大值、最小值、求和、求平均
  • LINQ语法有两种形式,它们各有各自的适用场景

    • 查询表达式 query expression(类似于SQL语句)

      1
      2
      3
      var result = from x in list 
      /*..LINQ操作(这里换行不需要使用;)..*/
      select x;
    • 链式表达式 chained expression(如同对一个对象连续调用方法那样,其实LINQ的本质就是对集合接口的拓展方法)

      1
      2
      3
      var result = list
      .Where(n => n % 2 == 0 && n >= 4)
      .OrderBy(n => n);

简单来说,接下来所展示的LINQ语法,很大程度上可以用来替代和简化一些通过 for​ 和 foreach​ 遍历集合来实现的排序查询等操作

LINQ相关内容

  • 筛选和排序
  • 求两个数据集合的交集
  • 使用分组统计出现频率