将foreach-loop更改为包含XmlNode的方法

本文关键字:XmlNode 方法 包含 foreach-loop | 更新日期: 2023-09-27 17:49:24

我使用名为"flights"的XmlNodeList进行foreach循环。所以foreach本身看起来像这样:

foreach (XmlNode flight in flights)
        {
         *code*
        }

在这个foreach-loop中,我使用这个(这里我设置了一个标签)获得了几个字符串:

callsign.Text = flight.Attributes.GetNamedItem("callsign").Value;

但是现在,我不再需要foreach了,我需要使用相同的代码作为方法。但是当我用

重写前面提到的每一行时

public void CreateFlight()

表示我使用flight.Attributes.GetNamedItem等的所有地方。"名称"flight"在当前上下文中不存在".

将foreach-loop更改为包含XmlNode的方法

像这样:

public string CreateFlight(XmlNode flight)
{
    return flight.Attributes.GetNamedItem("callsign").Value;
}

用法:

callsign.Text = CreateFlight(flight);

更改CreateFlight方法以接受XmlNode参数flight。当调用CreateFlight时,传入要从中提取数据的节点。

您需要将flight对象传递到您的方法中,或者在方法中创建一个新对象。考虑到这个名字,我怀疑是后者:

public void CreateFlight()
{
    XmlNode flight = new XmlNode();
    // The rest of your code
    // Do something with the flight object?
}

但是这只会创建一个空对象,您需要从某处填充它。但是,您的用法和注释暗示您需要这样做:

public string CreateFlight(XmlNode flight)
{
    return flight.Attributes.GetNamedItem("callsign").Value;
}

那么你可以这样称呼它:

foreach (XmlNode flight in flights)
{
    string callSign = CreateFlight(flight);
}