Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linq在具有相同名称的标记之间循环_C#_Linq - Fatal编程技术网

C# linq在具有相同名称的标记之间循环

C# linq在具有相同名称的标记之间循环,c#,linq,C#,Linq,我是新来的linq需要一些帮助 我有一个如下所示的xml文件: <InputPath> <path isRename="Off" isRouter="Off" pattern="pattern-1">d:\temp1</path> <path isRename="Off" isRouter="pattern-1">d:\temp2</path> </InputPath> 但我只得到最后一个值

我是新来的linq需要一些帮助

我有一个如下所示的xml文件:

  <InputPath>
      <path isRename="Off" isRouter="Off" pattern="pattern-1">d:\temp1</path>
      <path isRename="Off" isRouter="pattern-1">d:\temp2</path>
  </InputPath>
但我只得到最后一个
值。任何帮助都会很好。

您只能通过这种方式获得第一个元素,因为这是该方法提供给您的:具有给定名称的第一个子元素

如果您需要多个元素,您可以使用:

或者,使用扩展方法一次完成所有操作:

foreach (var path in rootElement.Descendants("InputPath").Elements("path"))
{
    string value = path.Value;
    // Use value here  
}
如果这没有帮助,请提供更多关于您正在尝试做什么以及问题是什么的信息

如果“last”是指“元素内容”,那是因为您使用的是
属性。如果希望在path元素中包含属性,则需要该方法,如iamstapper所示,尽管我个人通常会将
XAttribute
强制转换为string(或任何内容),而不是使用
Value
属性,以防属性丢失。(这取决于您希望在这种情况下行为是什么。)

您只能通过这种方式获得第一个元素,因为这是该方法提供给您的:具有给定名称的第一个子元素

如果您需要多个元素,您可以使用:

或者,使用扩展方法一次完成所有操作:

foreach (var path in rootElement.Descendants("InputPath").Elements("path"))
{
    string value = path.Value;
    // Use value here  
}
如果这没有帮助,请提供更多关于您正在尝试做什么以及问题是什么的信息


如果“last”是指“元素内容”,那是因为您使用的是
属性。如果希望在path元素中包含属性,则需要该方法,如iamstapper所示,尽管我个人通常会将
XAttribute
强制转换为string(或任何内容),而不是使用
Value
属性,以防属性丢失。(这取决于您希望在这种情况下行为是什么。)

您需要的是像这样循环遍历属性

foreach (XElement xElem in rootElement.Descendants("InputPath"))
{
    string isRename = xElem.Attribute("isRename").Value;

}

您需要的是,像这样循环遍历属性

foreach (XElement xElem in rootElement.Descendants("InputPath"))
{
    string isRename = xElem.Attribute("isRename").Value;

}

您是否尝试过只枚举路径项

foreach (var element in rootElement.Descendants("path"))
{
    var value = element.Value;
}

您是否尝试过只枚举路径项

foreach (var element in rootElement.Descendants("path"))
{
    var value = element.Value;
}