如何获取当前 XML 标记的索引?
例子:
<User>
<Contact>
<Name>Lucas</Name>
</Contact>
<Contact>
<Name>Andre</Name>
</Contact>
...
</User>
我正在尝试下面的代码
foreach (var element2 in doc2.Root.Descendants())
{
String name = element.Name.LocalName;
String value = element.Value;
}
我想知道我是否正在阅读第一个<Contact>
标签,或者第二个,或者第三个……
最佳答案
使用适当的重载 Select将在您枚举集合时生成索引。
var userContacts = doc2.Root
.Descendants()
.Where(element => element.Name == "Contact")
.Select((c, i) => new {Contact = c, Index = i});
foreach(var indexedContact in userContacts)
{
// indexedContact.Contact
// indexedContact.Index
}
注意:我添加了 .Where 是因为 .Descendants 会递归。
关于c# - 我如何知道 XML 标签的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954959/