public static void PrintRapport(List <Straat> straten)
        {
            if (File.Exists(@"C:\Users\Sieglinde\Documents\Programmeren\Labo_Straatmodel\Rapport.txt"))
            {
                File.Delete(@"C:\Users\Sieglinde\Documents\Programmeren\Labo_Straatmodel\Rapport.txt");
            }

            using StreamWriter writer = File.CreateText(@"C:\Users\Sieglinde\Documents\Programmeren\Labo_Straatmodel\Rapport.txt");
            writer.WriteLine($"Totaal aantal straten: {straten.Count()}\n");
            writer.WriteLine("Aantal straten per provincie:");

            //Straten ordenen op alfabetische volgorde van de provincies, dan op
            var geordendestraten = straten.OrderBy(s => s.Provincie).ThenBy(s => s.Gemeente);

            //Aantal straten per provincie tellen
            var provincies = geordendestraten.Select(s => s.Provincie).Distinct();

            foreach (var provincie in provincies)
            {
                writer.WriteLine($"   -  {provincie} : {geordendestraten.Count(s=>s.Provincie==provincie)}");
            }
            //ER KUNNEN VERSCHILLENDE STEDEN ZIJN MET DEZELFDE NAAM, MAAR IN EEN ANDERE PROVINCIE!!
            foreach (var provincie in provincies)
            {
                writer.WriteLine($"\n Straatinfo {provincie}");
                var gemeenten = geordendestraten.Where(s => s.Provincie == provincie).Select(s => s.Gemeente).Distinct();
                foreach (var gemeente in gemeenten)
                {
                    var stratenVanGemeente = geordendestraten.Where(s => (s.Gemeente == gemeente) && (s.Provincie == provincie));

                    int    aantalStraten = stratenVanGemeente.Count();
                    double totaleLengte  = stratenVanGemeente.Sum(s => s.Lengte);
                    writer.WriteLine($"   -  {gemeente} : {aantalStraten}, {totaleLengte}");

                    var    gesorteerdestraten = stratenVanGemeente.OrderBy(s => s.Lengte);
                    Straat kortste            = gesorteerdestraten.First();
                    Straat langste            = gesorteerdestraten.Last();
                    writer.WriteLine($"         o  {kortste.StraatID}, {kortste.Straatnaam}, {kortste.Lengte}");
                    writer.WriteLine($"         o  {langste.StraatID}, {langste.Straatnaam}, {langste.Lengte}");
                }
            }
        }
        public List <Straat> MaakStraten(Dictionary <string, Dictionary <string, Dictionary <string, List <Segment> > > > provincies)
        {
            List <Straat> straten = new List <Straat>();

            foreach (KeyValuePair <string, Dictionary <string, Dictionary <string, List <Segment> > > > provincie in provincies)
            {
                foreach (KeyValuePair <string, Dictionary <string, List <Segment> > > gemeente in provincie.Value)
                {
                    foreach (KeyValuePair <string, List <Segment> > straatIdSeg in gemeente.Value)
                    {
                        string straatnaam = straatIdSeg.Key;
                        Graaf  graaf      = new Graaf(straatIdSeg.Value);

                        Straat straat = new Straat(straatnaam, graaf, provincie.Key, gemeente.Key);

                        straten.Add(straat);
                    }
                }
            }
            return(straten);
        }