AIGC标识 C# LINQ 入门:查询语法与常用子句

LINQ 是什么

LINQ(Language Integrated Query,语言集成查询)把查询能力引入 C#。查询可以使用语言自身的表达式来描述,而不必总是作为字符串嵌入程序。它让筛选、排序、分组等数据处理更易表达。

基本组成

原文介绍了以下几类用途:

  • LINQ to Objects:查询实现 IEnumerable 或 IEnumerable<T> 的内存集合。
  • LINQ to DataSet:查询 DataSet 中的数据。
  • LINQ to XML:查询或操作 XML 结构及文档。
  • LINQ to SQL:早期 .NET Framework 中的关系数据库查询方案。

同步整理时补充:LINQ 是一组查询技术,不能把内存集合上的操作与数据库查询混为一谈。数据库查询是否能够翻译为 SQL,以及怎样执行,取决于查询提供程序。

命名空间

  • System.Linq:常用查询扩展方法。
  • System.Xml.Linq:LINQ to XML 的类型。
  • System.Data.Linq:旧版 LINQ to SQL 相关类型,不能视为现代 .NET 项目的通用数据库命名空间。

八个基本查询子句

关键字 用途
from 指定范围变量和数据源
where 按条件筛选数据
select 指定结果的形状或投影
group 对查询结果分组
orderby 排序,可使用 ascending 或 descending
into 引入查询延续标识符,或用于分组连接
join 按键关联两个数据源
let 定义一个范围变量,保存子表达式的结果

查询语法

原文给出的结构是:

var 结果 = from 元素 in 数据源
           where 条件
           orderby 排序表达式
           select 元素;

同步补充:可运行示例

下面的控制台程序筛选大于 10 的数字,再按升序输出:

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 12, 23, 3, 4, 2, 234, 123 };

        var query = from number in numbers
                    where number > 10
                    orderby number
                    select number;

        foreach (int number in query)
        {
            Console.WriteLine(number);
        }
    }
}

输出为 12、23、123、234,每个数字单独一行。查询语法可以转换为相应的方法调用;过滤和排序也可以写为 numbers.Where(number => number > 10).OrderBy(number => number)。

参考:Microsoft Learn:语言集成查询。


本文由本人 CSDN 原创文章《C#编程之Linq-语言集成查询》同步整理。新增示例和技术说明由 AI 辅助整理,保留原文知识结构,并修正命名空间与排版。

posted @ 2026-10-06 20:12  JacePan  阅读(4)  评论(0)    收藏  举报