public void Execute() { Console.WriteLine("\nStep 7 : Exercises\n"); IEnumerable <Location> placesVisited = TravelOrganizer.PlacesVisited; // De gemiddelde afstand van de steden Console.WriteLine($"Gemiddelde afstand van de steden is {placesVisited.Average(p => p.Distance):0} miles"); // De afstand van de verste stad Console.WriteLine($"De verste stad ligt op {placesVisited.Max(p => p.Distance):0} miles"); // De verste stad in de USA Console.WriteLine($"De verste stad in de USA is {placesVisited.OrderByDescending(p => p.Distance).FirstOrDefault(p => p.Country == "USA")}"); // Geef de namen van de landen met steden die niet in de USA liggen en op minder dan 4600 miles afstand liggen IEnumerable <string> nearbyNonUsaCities = placesVisited .Where(p => p.Country != "USA" && p.Distance < 4600) .Select(p => p.Country) .Distinct(); Step4.PrintCollection("Dichte steden buiten de USA", nearbyNonUsaCities); // Een gesorteerde lijst van alle landen (elk land komt slechts 1 keer voor in de lijst) IEnumerable <string> countries = placesVisited .Select(p => p.Country) .Distinct() .OrderBy(c => c); Step4.PrintCollection("Alle landen in de lijst:", countries); // Maak een lijst van anonieme objecten die de properties City en InUSA hebben. // InUSA staat op true voor een city binnen de USA, anders op false var cityInfo = placesVisited .Select(p => new { p.City, InUSA = p.Country == "USA" }); Console.WriteLine("Welke steden liggen in de USA?"); Step4.PrintCollection("Anonieme type voor landen:", cityInfo); // Maak een array van CityDistance objecten voor alle Locations die in de USA liggen CityDistance[] cityDistances = placesVisited .Where(p => p.Country == "USA"). Select(p => new CityDistance { Name = p.City, Country = p.Country, DistanceInKm = (int)(p.Distance * 1.6) }).ToArray(); Step4.PrintCollection("CityDistances voor steden in USA:", cityDistances); Console.WriteLine("Druk op enter om verder te gaan..."); Console.ReadLine(); }
public void Execute() { Console.WriteLine("\nStep 5 : Nog meer handige LINQ operatoren\n"); IEnumerable <Location> placesVisited = TravelOrganizer.PlacesVisited; // FirstOrDefault: vind de verste stad Location furthest = placesVisited.OrderByDescending(c => c.Distance).FirstOrDefault(); Console.WriteLine("Verste stad: {0}", furthest); Console.WriteLine(); // Skip n Take: cities 2 - 5 IEnumerable <Location> locations = placesVisited.Skip(1).Take(5); Step4.PrintCollection("Cities skip 1 take 5", locations); Console.WriteLine(); // Any/All: Console.WriteLine("Is er een stad op meer dan 5000 miles afstand? {0}", placesVisited.Any(c => c.Distance > 5000)); Console.WriteLine("Liggen alle steden op zijn minst 2000 miles ver? {0}", placesVisited.All(c => c.Distance >= 2000)); Console.WriteLine(); // SelectMany: flat list of countries and cities with use of collection initializer var flatListOfNames = placesVisited.SelectMany(c => new List <string> { c.City, c.Country }); Console.WriteLine("Alle steden en landen in 1 lijst:"); foreach (var n in flatListOfNames) { Console.WriteLine("- {0} -", n); } Console.WriteLine(); // Groeperen van gegevens: per land, de steden die behoren tot het land... var overzicht = placesVisited.GroupBy(l => l.Country, l => l.City); foreach (var overzichtsGroep in overzicht) { Console.WriteLine(overzichtsGroep.Key); foreach (string city in overzichtsGroep) { Console.WriteLine(" - {0}", city); } } Console.WriteLine(); Console.WriteLine("Druk op enter om verder te gaan..."); Console.ReadLine(); }
public void Execute() { Console.WriteLine("\nStep 6 : Exercises\n"); IEnumerable <Location> placesVisited = TravelOrganizer.PlacesVisited; // De gemiddelde afstand van de steden Console.WriteLine($"Gemiddelde afstand van de steden is {placesVisited.Average(l => l.Distance)} miles"); // De afstand van de verste stad Console.WriteLine($"De verste stad ligt op {placesVisited.Max(l => l.Distance)} miles"); // De verste stad in de USA Console.WriteLine($"De verste stad in de USA is {placesVisited.OrderByDescending(l => l.Distance).FirstOrDefault(l => l.Country == "USA")}"); // Geef de namen van de landen met steden die niet in de USA liggen en op minder dan 4600 miles afstand liggen IEnumerable <string> nearbyNonUSACities = null; Step4.PrintCollection("Dichte steden buiten de USA", nearbyNonUSACities); // Een gesorteerde lijst van alle landen (elk land komt slechts 1 keer voor in de lijst) Console.WriteLine("Alle landen in de lijst:"); IEnumerable <string> countries = null; Step4.PrintCollection("Alle landen in de lijst:", countries); // Maak een lijst van anonieme objecten die de properties City en InUSA hebben. // InUSA staat op true voor een city binnen de USA, anders op false var cityInfo = null as string; Console.WriteLine("Welke steden liggen in de USA?"); Step4.PrintCollection("Anonieme type voor landen:", cityInfo); // Maak een array van CityDistance objecten voor alle Locations die in de USA liggen CityDistance[] cityDistances = null; Step4.PrintCollection("CityDistances voor steden in USA:", cityDistances); Console.WriteLine("Druk op enter om verder te gaan..."); Console.ReadLine(); }