如何:在内存中存储查询结果(C# 编程指南)

查询基本上是一组有关如何检索和组织数据的指令。若要执行查询,需要调用它的 GetEnumerator 方法。当您使用 foreach 循环来循环访问元素时,将执行此调用。若要计算查询和存储其结果,而不执行 foreach 循环,请对查询变量调用下列方法之一:

建议在存储查询结果时,将返回的集合对象分配给一个新变量,如下面的示例所示:

class StoreQueryResults
{
    static List<int> numbers = new List<int>() { 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
    static void Main()
    {

        IEnumerable<int> queryFactorsOfFour =
            from num in numbers
            where num % 4 == 0
            select num;

        // Store the results in a new variable
        // without executing a foreach loop.
        List<int> factorsofFourList = queryFactorsOfFour.ToList();

        // Iterate the list just to prove it holds data.
        foreach (int n in factorsofFourList)
        {
            Console.WriteLine(n);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key");
        Console.ReadKey();
    }
}

编译代码

  • 创建面向 .NET Framework 3.5 版的 Visual Studio 项目。默认情况下,该项目具有一个对 System.Core.dll 的引用以及一条针对 System.Linq 命名空间的 using 指令。

  • 将代码复制到项目中。

  • 按 F5 编译并运行程序。

  • 按任意键退出控制台窗口。

请参阅

LINQ 查询表达式(C# 编程指南)