Ich bin neu in C# und versuchen, einige LINQ Fragen zu beantworten. Ich stecke auf 1. markiert als schwierig ...C# LINQ Group von
F: Was waren die Top 10 Herkunft Flughäfen mit den größten durchschnittlichen Abflugverzögerungen, einschließlich der Werte dieser Verzögerungen? (Tipp: Gruppe verwenden nach)
Ich habe eine Liste dem Namen „Flights“ bevölkert mit mehr als 20000 Objekte der Klasse „FlightInfo“.
Eigenschaften der FlightInfo Klasse sind: String Träger, string Herkunft, string Ziel, int DepartureDelay, int ArrivalDelay, int Abgebrochen, int Entfernung.
Ich verstehe, dass ich FlightInfo von FlightInfo.Origin gruppieren sollte und dann jede dieser Gruppen durch FlightInfo.DepartureDelay und als 10 mit der höchsten durchschnittlichen Verzögerung zeigen, aber neben der Gruppierung bin ich völlig fest, wie weiter zu verfahren.
Vielen Dank im Voraus für jede Hilfe! Hier
ist das Beispiel eines der vorherigen Fragen, die ich war in der Lage zu antworten:
Q: Die gewichtete Ankunft Verspätung eines Fluges ist seine Ankunft Verzögerung den Abstand geteilt. Was war der Flug mit der größten gewichteten Ankunftszeit außerhalb von Boston, Massachusetts?
A:
var weighted = (from FlightInfo in Flights
where FlightInfo.Origin == "Boston MA"
orderby (FlightInfo.ArrivalDelay/FlightInfo.Distance) descending
select FlightInfo).Take(1);
Randnotiz für die beantworteten Frage: 'Take' kehrt der' IEnumerable ', wenn Sie' T' Beispiel möchten, verwenden Sie 'First' oder' FirstOrDefault' –
Ja, ich sehe, dass, wenn ich 'First' verwenden Ich kann zu den Eigenschaften gelangen, ohne 'foreach' zu verwenden. Danke, ich konnte vorher nicht verstehen warum ich 'Console.WriteLine (Weighted.Origin)' nicht kann. –