在 C# 中使用 [] 访问 Linq to XML 查询结果
在这篇文章中,使用迭代器访问 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>'
In this post, the Linq to XML query result are accessed with iterator as follows.
foreach (var elem in elems) {
var res = elem.Elements("ClassKeyName");
foreach (var e in res) {
Console.WriteLine(e.Value);
}
}
Can I access the result with []? For example, I want to use as follows,
foreach (var elem in elems) {
var res = elem.Elements("ClassKeyName");
Console.WriteLine(res[0].Value);
}
However, I got this error message
xmlparse.cs(18,34): error CS0021:
Cannot apply indexing with [] to an expression of type
`System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您只需将结果转换为可索引类型,例如列表:(
如果您愿意,您仍然可以使用
var
- 我刚刚给了它一个显式类型,以使其在本案。)You'd just have to convert the results to an indexable type, such as a list:
(You can still use
var
if you want - I've just given it an explicit type to make it clearer in this case.)如果您只需要第一个,则可以
res.First().Value
。如果您需要第 n 个元素res.Skip(n - 1).Value
(因此第一个元素是res.Skip(0).Value
,第二个 <代码>res.Skip(1).Value...)。最大的问题是为什么?你想让我做什么?
If you only need the first, you can
res.First().Value
. If you need the n-th elementres.Skip(n - 1).Value
(so the first element isres.Skip(0).Value
, the secondres.Skip(1).Value
...).The big question is WHY? What do you want to do?