📜  linq c# 或 - C# (1)

📅  最后修改于: 2023-12-03 14:43:54.113000             🧑  作者: Mango

LINQ C#

什么是 LINQ?

LINQ,全称 Language Integrated Query,是.NET Framework 语言的一种整合查询的技术,提供了一种可以用于各种数据源(如对象、XML、数据库)的简单、统一、自然的查询方式。

下面是一个简单的 LINQ 查询示例,它从一个整型数组中选择所有小于 5 的数字,并按照从小到大的顺序排序:

int[] numbers = { 1, 3, 2, 4, 5 };
var query = from num in numbers
            where num < 5
            orderby num ascending
            select num;
LINQ 的优点

1. 提供简单易懂的查询方式

通过 LINQ,不需要使用 SQL 查询语句或其他查询语言,我们可以使用类似于自然语言的方式来查询数据,使代码更易于理解和维护。

2. 支持各种数据源的查询

LINQ 支持对各种数据源进行查询,包括对象、XML、数据库和数据集等。

3. 提供跨平台查询能力

通过使用通用查询模型,LINQ 提供了一种跨平台的查询语言,在多种数据源之间共享查询的能力。

4. 提高代码的可读性和可维护性

由于 LINQ 充分使用了.NET Framework 中的泛型特性,所以可以轻松地生成类型安全的代码,并且通过简单的 API 提供了更简单、更可读的代码,提高了代码的可读性和可维护性。

LINQ 的用法

通常,LINQ 的用法可以分为三个步骤:创建数据源、创建查询、执行查询。

创建数据源

可以使用各种数据源,如对象、XML、数据库和数据集等。

下面是一个简单的例子,创建了一个包含一些学生信息的对象列表:

List<Student> students = new List<Student>()
{
    new Student{ ID=1, Name="Allen", Gender='M', Grade=7 },
    new Student{ ID=2, Name="Bob", Gender='M', Grade=8 },
    new Student{ ID=3, Name="Cindy", Gender='F', Grade=8 },
    new Student{ ID=4, Name="David", Gender='M', Grade=7 },
    new Student{ ID=5, Name="Emma", Gender='F', Grade=6 },
};
创建查询

可以使用标准查询运算符(如 Select、Where、OrderBy、GroupBy 等)来创建查询。

下面是一个例子,查询成绩大于 7 的男生列表,按照年级和姓名排序:

var query = from s in students
            where s.Gender == 'M' && s.Grade > 7
            orderby s.Grade, s.Name
            select s;
执行查询

可以通过迭代来执行查询,也可以使用 ToList、ToDictionary、ToArray 和 SingleOrDefault 等方法来执行查询。

下面是迭代查询结果的例子:

foreach (var s in query)
{
    Console.WriteLine($"{s.Name} - Grade {s.Grade}");
}
总结

在.NET Framework 中,LINQ 是一种十分有用的技术,它提供了一种更加自然、简单的查询方式,并且可以支持各种数据源,提高代码的可读性和可维护性。通过掌握 LINQ,可以使代码更加高效、简洁,更加易于维护与扩展。