Speichern der Ergebnisse einer Abfrage im SpeicherStore the results of a query in memory

Eine Abfrage besteht im Grunde aus einer Reihe von Anweisungen für das Abrufen und Organisieren von Daten.A query is basically a set of instructions for how to retrieve and organize data. Abfragen werden verzögert ausgeführt, da jedes nachfolgende Element im Ergebnis angefordert wird.Queries are executed lazily, as each subsequent item in the result is requested. Wenn Sie foreach zum Durchlaufen der Ergebnisse verwenden, werden Elemente so zurückgegeben, wie auf sie zugegriffen wurde.When you use foreach to iterate the results, items are returned as accessed. Rufen Sie einfach eine der folgenden Methoden für die Abfragevariable auf, um eine Abfrage auszuwerten und ihre Ergebnisse ohne das Ausführen einer foreach-Schleife zu speichern:To evaluate a query and store its results without executing a foreach loop, just call one of the following methods on the query variable:

Es wird empfohlen, dass Sie die zurückgegebenen Auflistungsobjekte beim Speichern der Abfrageergebnisse einer neuen Variable zuweisen, wie im folgenden Beispiel gezeigt wird:We recommend that when you store the query results, you assign the returned collection object to a new variable as shown in the following example:

BeispielExample

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.
        Console.WriteLine(factorsofFourList[2]);
        factorsofFourList[2] = 0;
        Console.WriteLine(factorsofFourList[2]);

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

Siehe auchSee Also

LINQ-AbfrageausdrückeLINQ Query Expressions