当前位置:首页 > 编程教程 > asp.net教程 > C# linq to xml 简单示例

C# linq to xml 简单示例

2017-12-07 18:08:53[asp.net教程]点击数:作者:三司稻恩来源: 网络
随机为您推荐的文章:.NET中的Lambda表达式与匿名方法

 在C#2中,由于有了方法组,匿名方法,类型的协变和抗变,使得运用delegate变得很容易,在注册事件时代码变得简单易读,但是在C# 2中,代码仍然有点臃肿,大块的匿名方法

本文为您介绍C# linq to xml 简单示例的相关内容,具体内容请看下面

data.xml

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <Data>
 3   <Products>
 4     <Product Name="West Side Story" Price="9.99" SupplierID="1" />
 5     <Product Name="Assassins" Price="14.99" SupplierID="2" />  
 6     <Product Name="Frogs" Price="13.99" SupplierID="1" />
 7     <Product Name="Sweeney Todd" Price="10.99" SupplierID="3" />
 8   </Products>
 9 
10   <Suppliers>
11     <Supplier Name="Solely Sondheim" SupplierID="1" />
12     <Supplier Name="CD-by-CD-by-Sondheim" SupplierID="2" />
13     <Supplier Name="Barbershop CDs" SupplierID="3" />
14   </Suppliers>
15 </Data>

通过 linq to xml ,查找价格超过10的产品,并打印供应商名称与产品名称;

 1             XDocument doc = XDocument.Load("data.xml");
 2             var filtered = from p in doc.Descendants("Product")
 3                            join s in doc.Descendants("Supplier")
 4                            on (int)p.Attribute("SupplierID")
 5                            equals (int)s.Attribute("SupplierID")
 6                            where (decimal)p.Attribute("Price") > 10
 7                            select new
 8                            {
 9                                ProductName = (string)p.Attribute("Name"),
10                                SupplierName = (string)s.Attribute("Name")
11                            };
12 
13             foreach (var v in filtered)
14             {
15                 Console.WriteLine("SupplierName={0} , ProductName={1}", v.SupplierName, v.ProductName);
16             }

输出

SupplierName=CD-by-CD-by-Sondheim , ProductName=Assassins
SupplierName=Solely Sondheim , ProductName=Frogs
SupplierName=Barbershop CDs , ProductName=Sweeney Todd

参考资料

1、深入理解C#(第2版);

以上就是这篇文章的全部内容了,希望大家能够喜欢。

这些内容可能对你也有帮助

更多asp.net教程可查看asp.net教程列表页。

TAGS: 示例   简单   linq   xml