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

时间:2012-12-21 15:32:50

标签: c# methods foreach

我有一个使用名为“flights”的XmlNodeList的foreach循环。所以foreach本身看起来像这样:

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

并且在这个foreach循环中我使用这个获得了几个字符串(这里我设置了一个标签):

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

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

重写上面提到的foreach行时

public void CreateFlight()

它告诉我在哪里使用flight.Attributes.GetNamedItem等等。“当前上下文中不存在名称”flight“。

3 个答案:

答案 0 :(得分:2)

您需要将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);
}

答案 1 :(得分:2)

这样的事情:

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

用法:

callsign.Text = CreateFlight(flight);

答案 2 :(得分:2)

更改CreateFlight方法以接受名为XmlNode的{​​{1}}参数。当您致电flight时,请传入您要从中提取数据的节点。