C# 中的 语言集成查询 (LINQ) 将一系列查询过程转换为了对于查询本身的描述,并在需要的时候由运行时以高效的方式进行计算。
文档中说类似于各种数据库的查询语言,不过我连数据库都没用过就是了(

希望以后不会回来抓虫ww,记得一定要去看微软的文档哦(放在最后了)

例子

这是 Microsoft Learn 官网的例子(有修改):

// 定义数据源
int[] scores = { 97, 92, 81, 60 };

// 定义查询表达式
IEnumerable<int> scoreQuery =
    from score in scores
    where score > 80
    select score;

// 执行查询
foreach (int i in scoreQuery)
    Console.Write(i + " ");

其中 scoreQuery 用来描述这一条查询,这并不执行查询操作。
from score in scoresforeach 的表现形式类似,都是遍历一个可迭代的数据(scores ),并用一个变量(score)表示迭代时当前正在处理的元素

随后 where 定义了一个表达式 score > 80,符合这个表达式的元素将通过筛选进入到最后的 select 语句中被返回出去

排序

查询中的关键字 orderby 可以将查询结果排序,比如:

IEnumerable<int> query =
    from score in scores
    where score > 60
    orderby score descending /* 降序 */
    select score
// ...

这样一来查询的结果将变为倒叙排序。而且不仅如此,orderby 语句还可以指定多个排序对象。比如一个对象内有两个 int 元素,首先依照元素 .a 排序,如果 .a 的大小相同则使用 .b 的大小辅助排序(文档里的例子好像是 first or last name):

IEnumerable<int> query =
    from obj in objs
    orderby obj.a ascending, obj.b ascending /* 升序 */
    select obj

一些文档:

有用的文档