2014-12-19 68 views
1

在MSDN文檔的XElement.Elements列舉從XML元素時使用LINQ查詢運算符(XName的)的方法,有以下示例:隨着VS而不與沒有過濾

XElement xmlTree = new XElement("Root", 
    new XElement("Type1", 1), 
    new XElement("Type1", 2), 
    new XElement("Type2", 3), 
    new XElement("Type2", 4), 
    new XElement("Type2", 5) 
); 

IEnumerable<XElement> elements = 
    from el in xmlTree.Elements("Type2") 
    select el; 
foreach (XElement el in elements) 
    Console.WriteLine(el); 

是否有之間的差那和下面哪個產生相同的結果?

foreach (XElement el in xmlTree.Elements("Type2")) 
    Console.WriteLine(el); 

在這裏使用查詢操作符有什麼原因嗎?

+1

可能相關:http://stackoverflow.com/questions/27424193/what-is-the-purpose-of-using-selectx-x-in-一個分批方法 – 2014-12-19 05:25:39

回答

1

在這種情況下,兩者之間沒有區別。我相信文檔只是試圖展示查詢XML結構的能力。這種查詢語法允許更詳細和表達的結果。

如果您擔心可能看起來像枚舉值的多次枚舉,那麼您可以輕鬆地實現它,因爲IEnumerable在被消耗時進行評估(for each循環),所以沒有任何額外的工作發生在場景。