Share via


Så här returnerar du delmängder av elementegenskaper i en fråga (C#-programmeringsguide)

Använd en anonym typ i ett frågeuttryck när båda dessa villkor gäller:

  • Du vill bara returnera några av egenskaperna för varje källelement.

  • Du behöver inte lagra frågeresultatet utanför omfånget för den metod där frågan körs.

Om du bara vill returnera en egenskap eller ett fält från varje källelement kan du bara använda punktoperatorn i select -satsen. Om du till exempel bara ID vill returnera för varje studentskriver select du -satsen enligt följande:

select student.ID;  

Exempel

I följande exempel visas hur du använder en anonym typ för att endast returnera en delmängd av egenskaperna för varje källelement som matchar det angivna villkoret.

private static void QueryByScore()
{
    // Create the query. var is required because
    // the query produces a sequence of anonymous types.
    var queryHighScores =
        from student in students
        where student.ExamScores[0] > 95
        select new { student.FirstName, student.LastName };

    // Execute the query.
    foreach (var obj in queryHighScores)
    {
        // The anonymous type's properties were not named. Therefore
        // they have the same names as the Student properties.
        Console.WriteLine(obj.FirstName + ", " + obj.LastName);
    }
}
/* Output:
Adams, Terry
Fakhouri, Fadi
Garcia, Cesar
Omelchenko, Svetlana
Zabokritski, Eugene
*/

Observera att den anonyma typen använder källelementets namn för dess egenskaper om inga namn anges. Om du vill ge nya namn till egenskaperna i den anonyma typen skriver du -instruktionen select på följande sätt:

select new { First = student.FirstName, Last = student.LastName };  

Om du provar detta i föregående exempel måste instruktionen Console.WriteLine också ändras:

Console.WriteLine(student.First + " " + student.Last);  

Kompilera koden

Om du vill köra den här koden kopierar och klistrar du in klassen i ett C#-konsolprogram med ett using direktiv för System.Linq.

Se även