Linq To Xml一句入门

上次写了篇Linq To Xml 增删改查
自以为对Linq To Xml差不多入门了,结果实际工作中遇到一个简单的子级查询就绊住了。
园子里高人比较多,帮我写句很经典的Linq语句,让体验到Linq的强大与高深。
先看这句经典代码吧。
大气象
string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?><root>"
    
+ "<room><id>1</id><people><name>张三1</name></people>"
    
+ "<people><name>张三2</name></people></room><room><id>2</id><people><name>李四1</name></people>"
    
+ "<people><name>李四2</name></people></room></root>";
var obj 
= XDocument.Parse(xml).Descendants("room")
    .Where(w 
=> w.Elements("id").Any(a => (int)a == 1))
    .SelectMany(s 
=> s.Elements("people"));
foreach (var info in obj)
{
    Response.Write(info 
+ "<br />");
}
/*
    * 1.Parse()  从字符串创建XDocument
    * 2.Descendants("xname");  按XName筛选子元素集合
    * 3.Lambda表达式“=>”
    *  其实和2.0中的匿名方法差不多,都是用于产生内联方法,只不过Lambda表达式的语法更为简洁。
    *  语法如下:(参数列表) => 表达式或者语句块
    * 4.Any()  用于判断集合中是否有元素满足某一条件;
    * 5.SelectMany()  Select选择(一对多);延迟
    
*/

Linq语法真的挺好玩,但是有不少人告诉我学Linq用处不大。没办法,用到什么就学什么吧。
这是我的提问:Linq To Xml查询指定父级下面的所有子级。
http://space.cnblogs.com/question/15683/

感谢熊哥:http://www.cnblogs.com/livexy/

posted @ 2010-07-13 09:09  大气象  阅读(1084)  评论(0编辑  收藏  举报
http://www.tianqiweiqi.com