Ich versuche, das Turnier Alter von dieser Webseite zu ziehen:eine Schleife bekommen einen String zu bauen richtig
http://www.reddishvulcans.com/uk_tournament_database.asp
Ich versuche, für die jeweils eine Zeichenfolge auf der Grundlage der gültigen Alter für den Eintritt zu erstellen Tabelle.
Zum Beispiel, wenn der "Carling Cup" von 7-Jährigen eingegeben werden kann, dann würde eine Zeichenfolge wie "U7" generiert, oder wenn es durch 7, 8 und 9 Jahre alt eingebbar ist, wird die resultierende Zeichenfolge "U7, U8, U9".
Ich habe einen Anfang gemacht, aber meine Logik wird brechen, wenn die Zeiten so gehen "Unter 7s, Lücke hier, wo keine unter 8s, unter 9s".
Hier ist mein Code:
public static List<Record> getRecords()
{
string url = "http://www.reddishvulcans.com/uk_tournament_database.asp";
var Webget = new HtmlWeb();
var doc = Webget.Load(url);
var root = doc.DocumentNode;
var ages = root.SelectNodes("//div[@class='infobox']/table/tr[5]/td/img");
List<String> tournamentAges = new List<String>();
String ageGroups = "";
List<String> ageString = new List<String>();
for (Int32 i = 0; i < ages.Count(); i++)
{
if (ages[i].GetAttributeValue("src", "nope") == "images/2016/u6_Yes.gif")
{
if (!ageString.Contains(" U6 ")) {
ageString.Add(" U6 ");
continue;
}
}
else if (ages[i].GetAttributeValue("src", "nope") == "images/2016/u6_.gif")
{
continue;
}
if (ages[i].GetAttributeValue("src", "nope") == "images/2016/u7_Yes.gif")
{
if (!ageString.Contains(" U7 "))
{
ageString.Add(" U7 ");
continue;
}
}
else if (ages[i].GetAttributeValue("src", "nope") == "images/2016/u7_.gif")
{
continue;
}
if (ages[i].GetAttributeValue("src", "nope") == "images/2016/u8_Yes.gif")
{
if (!ageString.Contains(" U8 "))
{
ageString.Add(" U8 ");
continue;
}
}
else if (ages[i].GetAttributeValue("src", "nope") == "images/2016/u8_.gif")
{
continue;
}
// Checks until u16.gif
foreach (String a in ageString)
{
if (a != "")
{
ageGroups += a;
}
}
ageString.Clear();
if (ageGroups != "")
{
tournamentAges.Add(ageGroups);
}
ageGroups = "";
}
}
}
Um klar zu sein, ich habe Probleme mit der Schleifenlogik.
Der Ablauf geht zur Zeit wie folgt aus:
Loop through current list of images
If > u6_Yes.gif
Concatenate u6 to ageString
else
Continue
aber es an den Anfang zurück weiter wird und in einer Endlosschleife stecken, Wie kann ich es anmutig machen handhaben, wenn u6_.gif ist es weg, ignorieren und zum nächsten gehen?
Da es alle Vergleiche ist, warum Sie keinen 'Schalter' Klausel über' Alter verwenden [i] .GetAttributeValue („src“, „Nö“) '? Das sollte die Lesbarkeit zumindest ein bisschen verbessern. – Adwaenyth