Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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();
        }