2012-10-11 37 views
1

使用LINQ to XML,如何使用值「Test1」,「Test2」和「Test3」將以下XML數據投影到List<string>中。LINQ to XML:項目到列表<string>

<objectlist> 
    <object code="Test1" /> 
    <object code="Test2" /> 
    <object code="Test3" /> 
</objectlist> 

我有一個字符串提供的XML:

XDocument xlist = XDocument.Parse(xmlData); 

感謝

+2

你有什麼嘗試? (這很簡單,但學習首先嚐試自己的事情很重要,並在提出問題時向他們報告。) –

+2

你試過了什麼?這是微不足道的,在這裏有很多關於這方面的問題。 –

回答

1
var xDoc = XDocument.Parse(xml); 
List<string> codes = xDoc.Descendants("object") 
         .Select(o => o.Attribute("code").Value) 
         .ToList(); 
2
var query = from node in xlist.Root.Elements("object") 
      select node.Attribute("code").Value 

var result = query.ToList(); 

或者與擴展方法的語法:

var query = xlist.Root.Elements("object") 
       .Select(node => node.Attribute("code").Value) 
       .ToList() 
+2

爲什麼在這裏使用查詢表達式?與擴展方法調用相比,它只是增加了噪聲。 –

+0

@JonSkeet可能是一個偏好問題,但我發現它可以減少噪音... – jeroenh

+1

它在複雜的查詢中有效 - 但這裏增加*噪音,特別是因爲您之後想要調用'ToList()'。我通常發現如果你只是做一個Select或者Where,查詢表達式比擴展方法的語法更具噪聲。 –