簡體   English   中英

使用C#中的[]訪問Linq到XML查詢結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM