[英]Accessing Linq to XML query results with [] in C#
在这篇文章中 ,使用迭代器访问Linq to XML查询结果,如下所示。
foreach (var elem in elems) {
var res = elem.Elements("ClassKeyName");
foreach (var e in res) {
Console.WriteLine(e.Value);
}
}
我可以用[]访问结果吗? 例如,我想使用如下,
foreach (var elem in elems) {
var res = elem.Elements("ClassKeyName");
Console.WriteLine(res[0].Value);
}
但是,我收到此错误消息
xmlparse.cs(18,34): error CS0021:
Cannot apply indexing with [] to an expression of type
`System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>'
您只需将结果转换为可索引类型,例如列表:
foreach (var elem in elems) {
List<XElement> res = elem.Elements("ClassKeyName").ToList();
Console.WriteLine(res[0].Value);
}
(如果你愿意,你仍然可以使用var
- 我只是给它一个明确的类型,以便在这种情况下更清楚。)
如果你只需要第一个,你可以res.First().Value
。 如果你需要第n个元素res.Skip(n - 1).Value
(所以第一个元素是res.Skip(0).Value
,第二个res.Skip(1).Value
...)。
最大的问题是为什么? 你想让我做什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.