Procedura: archiviare i risultati di una query in memoria (Guida per programmatori C#)

Una query è fondamentalmente un insieme di istruzioni per il recupero e l'organizzazione dei dati. L'esecuzione della query richiede una chiamata al metodo GetEnumerator. Questa chiamata viene eseguita quando si utilizza un ciclo foreach per scorrere gli elementi. Per archiviare i risultati in qualsiasi momento prima o dopo avere eseguito il ciclo foreach, è sufficiente chiamare uno dei metodi seguenti sulla variabile della query:

Quando si archiviano i risultati della query, si consiglia di assegnare l'oggetto insieme restituito a una nuova variabile come illustrato nell'esempio seguente:

Esempio

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();
    }
}

Compilazione del codice

  • Creare un progetto Visual Studio per .NET Framework versione 3.5. Per impostazione predefinita, il progetto include un riferimento a System.Core.dll e una direttiva using per lo spazio dei nomi System.Linq.

  • Copiare il codice nel progetto.

  • Premere F5 per compilare ed eseguire il programma.

  • Premere un tasto per chiudere la finestra della console.

Vedere anche

Concetti

Espressioni di query LINQ (Guida per programmatori C#)