これは私のコードです:
public void refresh_SID(string callsign) {
// zjistime si vsechny potrebne informace o danem letu
XmlNodeList lety = airplanes.SelectNodes("/vEsup/flights/LKPR/odlety/let");
XmlNodeList sids = airports.SelectNodes("/vEsup/config/airports/LKPR/sidstar/sids/sid");
XmlNodeList getQfu = airplanes.SelectNodes("/vEsup/airports/airport/");
MessageBox.Show(callsign);
foreach (XmlNode let in lety) {
if(let.Attributes.GetNamedItem("callsign").Value == callsign) {
string adep = let.Attributes.GetNamedItem("adep").Value;
foreach(XmlNode letiste in getQfu) {
if(adep == letiste.Attributes.GetNamedItem("icao").Value);
string qfu = letiste.Attributes.GetNamedItem("rwy").Value;
}
string depRunway = let.Attributes.GetNamedItem("deprwy").Value;
string type = let.Attributes.GetNamedItem("type").Value;
string exitpoint = let.Attributes.GetNamedItem("exitpoint").Value;
string rules = let.Attributes.GetNamedItem("rules").Value;
ComboBox sidRoute = new ComboBox();
Load_SID(depRunway, qfu, type, exitpoint, rules, sids, sidRoute);
}
}
}
残念ながら、2つのforeach
ループを1つにマージすることはできません。これは、2番目のループではadep
、最初のループで取得した文字列を使用する必要があり、2番目のループは別のforeach
ループである必要があるためです。 XMLファイル。したがって、Load_SID
メソッドを呼び出すとき、qfu
は存在しません。そこに到達する方法はありますか?