Skip to main content

Language Integrated Query (LINQ)

· 2 min read
Gavin Gong

字如其名,LINQ提供语言集成查询功能。不过在这之前理应预习一下C#的IEnumerable,这俩是脸贴脸的。

C#的迭代器

迭代器可用于逐步迭代集合,例如列表和数组。通过 foreach 语句或在 LINQ 查询中使用迭代器。

迭代器方法或 get 访问器可对集合执行自定义迭代。 迭代器方法使用 yield return 语句返回元素,每次返回一个。 到达 yield return 语句时,会记住当前在代码中的位置。 下次调用迭代器函数时,将从该位置重新开始执行。

可迭代的类型为public static System.Collections.IEnumerable。例如:

public static System.Collections.IEnumerable SomeNumbers()
{
yield return 3;
yield return 5;
yield return 8;
}

在上述例子中,如果迭代SomeNumbers三次,会分别得到3、5、8:

{
foreach (int number in SomeNumbers())
{
Console.Write(number.ToString() + " ");
}
// Output: 3 5 8
Console.ReadKey();
}

有许多组件使用IEnumerable作为接口,因此可以直接在ArrayListStack等类型的对象上使用IEnumerable的特性。