Wie kann man in C# eine Liste von gültigen und ungültigen IPAdressen aus einer ConfigDatei auslesen?

...komplette Frage anzeigen

2 Antworten

Jetzt habe ich nun eine Liste mit gültigen und ungültigen IP-Adressen erstellt. Innerhalb dessen möchte ich schauen, ob diese IP-Adresse eine gültige oder ungültige ist, wenn es eine gültige ist, soll es der Liste hinzugefügt werden... bei ungültig das selbe, aber irgendwie wenn ich das Programm debugge springt es nicht in die if-Bedingung rein :S. Könnte ihr mir vielleicht sagen, warum?

 List<IPAddress> ipsValid = new List<IPAddress>();
            List<IPAddress> ipsInValid = new List<IPAddress>();

            for (int k = 0; k < ipconfig.IPList.Count; k++)
            {
                if (ipconfig.IPList.get(k).IsValid.Equals("true"))
                {
                    ipsValid.Add(IPAddress.Parse(ipconfig.IPList.get(0).ValueIPString));
                    ipsValid.Add(IPAddress.Parse(ipconfig.IPList.get(1).ValueIPString));
                }

                if(ipconfig.IPList.get(k).IsValid.Equals("false"))
                {
                    //ipsInValid.Add();
                }
            }
Toraka 29.11.2013, 14:23

Dann umgehe das Problem, indem du dem ersten if einen else-Zweig (ohne if) ergänzt. Außerdem wirst du nur EIN get ausführen dürfen und diesen Wert z.B. als String merken und erst dann auswerten.

0
Michael339 02.12.2013, 01:16

Bist Du denn sicher, dass IPList Elemente enthält?

0

das kannst du mit LINQ umsetzen:

var allIps = ipconfig.IPList.GroupBy(val => val.IsValid)
                      .ToDictionary(ip => ip.Key, ip => ip.ToList());
List<IPAddress> validIPs = allIps[true];
List<IPAddress> invalidIPs = allIps[false];

die beiden listen kannst du dann verwenden.

wegen dein problem, hast du schon geschaut wir gross deine liste ist? eg: Debug.WriteLine(ipconfig.IPList.Count);

wenn die liste leer ist wird es naturlich nciht reinspringen keonnen...

Was möchtest Du wissen?