Поделиться через


Практическое руководство. Сохранение результатов запроса в памяти (Руководство по программированию в C#)

Обновлен: Ноябрь 2007

Запрос, по сути своей является набором инструкций, на основании которых осуществляется извлечение и организация данных. Для выполнения запроса требуется вызов его метода 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();
    }
}

Компиляция кода

  • Создайте проект Visual Studio, предназначенный для платформы .NET Framework версии 3.5. По умолчанию в этом проекте имеется ссылка на файл System.Core.dll и директива using для пространства имен System.Linq.

  • Скопируйте код в созданный проект.

  • Нажмите клавишу F5, чтобы скомпилировать и запустить программу.

  • Нажмите любую клавишу для выхода из окна консоли.

См. также

Основные понятия

Выражения запросов LINQ (Руководство по программированию в C#)