这是我的代码:
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);
}
}
}
不幸的是,我无法将两个foreach
循环合并为一个,因为在第二个循环中,我需要使用adep
在第一个循环中得到的字符串,并且我需要第二个循环作为单独的foreach
循环,因为它必须检查不同部分XML 文件。所以现在,当调用该Load_SID
方法时,qfu
不存在。有什么办法可以到那里吗?