public StraatAdres ParseAddress(string row)
        {
            StraatAdres straatAdres = new StraatAdres();

            straatAdres.Straatnaam           = string.Empty;
            straatAdres.HuisnummerToevoeging = string.Empty;
            string adres = row.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => WebUtility.HtmlDecode(x.Trim())).First();

            string[] adressParts = adres.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            bool huisnummerFound = false;

            int huisnr;

            if (adressParts.All(x => int.TryParse(x, out huisnr) == false))
            {
                straatAdres.Straatnaam = string.Join(" ", adressParts);
            }
            else
            {
                for (int i = adressParts.Length - 1; i >= 0; i--)
                {
                    var part = adressParts[i];
                    if (!huisnummerFound && int.TryParse(part, out huisnr))
                    {
                        huisnummerFound        = true;
                        straatAdres.Huisnummer = huisnr;
                        continue;
                    }

                    if (huisnummerFound)
                    {
                        straatAdres.Straatnaam = part + " " + straatAdres.Straatnaam;
                    }
                    else
                    {
                        straatAdres.HuisnummerToevoeging = part + " " + straatAdres.HuisnummerToevoeging;
                    }
                }

                straatAdres.HuisnummerToevoeging = straatAdres.HuisnummerToevoeging.Trim();
                straatAdres.Straatnaam           = straatAdres.Straatnaam.Trim();
            }
            return(straatAdres);
        }
        public StraatAdres ParseAddress(string row)
        {
            StraatAdres straatAdres = new StraatAdres();
            straatAdres.Straatnaam = string.Empty;
            straatAdres.HuisnummerToevoeging = string.Empty;
            string adres = row.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => WebUtility.HtmlDecode (x.Trim())).First();

            string[] adressParts = adres.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            bool huisnummerFound = false;

            int huisnr;
            if (adressParts.All(x => int.TryParse(x, out huisnr) == false))
            {
                straatAdres.Straatnaam = string.Join(" ", adressParts);
            }
            else
            {
                for (int i = adressParts.Length - 1; i >= 0; i--)
                {
                    var part = adressParts[i];
                    if (!huisnummerFound && int.TryParse(part, out huisnr))
                    {
                        huisnummerFound = true;
                        straatAdres.Huisnummer = huisnr;
                        continue;
                    }

                    if (huisnummerFound)
                    {
                        straatAdres.Straatnaam = part + " " + straatAdres.Straatnaam;
                    }
                    else
                    {
                        straatAdres.HuisnummerToevoeging = part + " " + straatAdres.HuisnummerToevoeging;
                    }
                }

                straatAdres.HuisnummerToevoeging = straatAdres.HuisnummerToevoeging.Trim();
                straatAdres.Straatnaam = straatAdres.Straatnaam.Trim();
            }
            return straatAdres;
        }