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 student
skriver 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.