AirlineDelays.Program.FindWorstAirports C# (CSharp) Method

FindWorstAirports() static private method

static private FindWorstAirports ( ) : void
return void
        static void FindWorstAirports()
        {
            List<Airport> airports = new List<Airport>();
            string[] lines = File.ReadAllLines(AirlinePerformanceFileName);
            for (int i = 1; i < lines.Length; ++i)
            {
                string line = lines[i];
                string[] parts = line.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if (parts.Length != 7)
                    continue;

                // Create and fill up a unique airport list with airport objects
                // Set the total delay and flight count properties for each object
                Airport departureAirport = new Airport();
                Airport arrivalAirport = new Airport();
                departureAirport.AirportName = parts[1];
                arrivalAirport.AirportName = parts[2];

                if (!airports.Exists(a => a.AirportName == departureAirport.AirportName))
                    airports.Add(departureAirport);
                if (!airports.Exists(a => a.AirportName == arrivalAirport.AirportName))
                    airports.Add(arrivalAirport);

                airports.Find(x => x.AirportName == departureAirport.AirportName).TotalDepartureDelay += int.Parse(parts[3]);
                airports.Find(x => x.AirportName == departureAirport.AirportName).DepartureFlightCount++;

                airports.Find(x => x.AirportName == arrivalAirport.AirportName).TotalArrivalDelay += int.Parse(parts[4]);
                airports.Find(x => x.AirportName == arrivalAirport.AirportName).ArrivalFlightCount++;
            }

            List<Airport> worstAirportToFlyFrom = airports.OrderByDescending(a => a.AverageDepartureDelay).ToList();
            List<Airport> worstAirportToFlyTo = airports.OrderByDescending(a => a.AverageArrivalDelay).ToList();

            Console.WriteLine("The worst airport to fly from is {0} with an average departure delay of {1}.",
                worstAirportToFlyFrom.First().AirportName, worstAirportToFlyFrom.First().AverageDepartureDelay);
            Console.WriteLine("The worst airport to fly to is {0} with an average arrival delay of {1}.",
                worstAirportToFlyTo.First().AirportName, worstAirportToFlyTo.First().AverageArrivalDelay);
        }