Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie einen anonymen Typ in einem Abfrageausdruck, wenn beide Bedingungen gelten:
Sie möchten nur einige der Eigenschaften jedes Quellelements zurückgeben.
Sie müssen die Abfrageergebnisse nicht außerhalb des Bereichs der Methode speichern, in der die Abfrage ausgeführt wird.
Wenn Sie nur eine Eigenschaft oder ein Feld aus jedem Quellelement zurückgeben möchten, können Sie einfach den Punktoperator in der select Klausel verwenden. Wenn Sie z. B. nur die ID jedes student zurückgeben möchten, schreiben Sie die Klausel select wie folgt:
select student.ID;
Beispiel
Das folgende Beispiel zeigt, wie Sie einen anonymen Typ verwenden, um nur eine Teilmenge der Eigenschaften jedes Quellelements zurückzugeben, das der angegebenen Bedingung entspricht.
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
*/
Beachten Sie, dass der anonyme Typ die Namen des Quellelements für seine Eigenschaften verwendet, wenn keine Namen angegeben werden. Wenn Sie den Eigenschaften im anonymen Typ neue Namen geben möchten, schreiben Sie die select Anweisung wie folgt:
select new { First = student.FirstName, Last = student.LastName };
Wenn Sie dies im vorherigen Beispiel versuchen, muss sich die Console.WriteLine Anweisung auch ändern:
Console.WriteLine(student.First + " " + student.Last);
Code kompilieren
Um diesen Code auszuführen, kopieren Sie die Klasse, und fügen Sie sie in eine C#-Konsolenanwendung mit einer using Direktive für System.Linq ein.