LINQ匿名类型的作用是什么

LINQ匿名类型的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

在新源等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设、外贸网站建设 网站设计制作定制设计,公司网站建设,企业网站建设,品牌网站设计,成都全网营销,成都外贸网站建设,新源网站建设费用合理。

下面的示例提供了一个更复杂和更实际的场景。它把我们的城市列表转换成一个分层的结果集合──我们将使用一个LINQ匿名类型来对结果按国家分组,这个LINQ匿名类型包含了一个国家名称,一个城 市详细信息的子集合和在这个国家中所有城市距离的总和,这距离之和将通过第五步中示范过的lambda表达式 来计算:

using System;  using System.Web.UI;  using System.Query;     public partial class Step7 : System.Web.UI.Page  {  protected void Page_Load(object sender, EventArgs e)  {  TravelOrganizer travel = new TravelOrganizer();     GridView1.DataSource = from location in travel.PlacesVisited  & nbsp; group location by location.Country into loc  & nbsp; select new {  & nbsp; & nbsp; Country = loc.Key,  & nbsp; & nbsp; Cities = loc,  & nbsp; & nbsp; TotalDistance = loc.Sum(dist => dist.Distance)  & nbsp; };   GridView1.DataBind();  }  }

我们.aspx页面中的GridView是这样定义的:

  1. <%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="Step7.aspx.cs" Inherits="Step7" %> 

  2.    

  3.  

  4.  

  5.  id="form1" runat="server"> 

  6.  

  7. Groupings with Anonymous Classes

     

  8.    

  9.  ID="GridView1" AutoGenerateColumns="false" runat="server"> 

  10.  

  11.    

  12.  HeaderText="Country" DataField="Country" /> 

  13.    

  14.  HeaderText="Cities"> 

  15. & nbsp; 

  16. & nbsp;   

  17. & nbsp; ID="BulletedList1" runat="server" 

  18. & nbsp; & nbsp;DataSource='<%#Eval("Cities")%>' DataValueField="City"/> 

  19. & nbsp;   

  20. & nbsp; 

  21.  

  22.    

  23.  HeaderText="Total Distance" DataField="TotalDistance" /> 

  24.    

  25.  

  26.  

 

  •  

  •  

  •  

  • 注意,我在GridView的模版列中添加了一个"Cities"列,并且在其中添加了一个控件 (一个新的ASP.NET 2.0自带控件)来绑定在上面用LINQ查询所得到的分层结果。

    注意,所有上面的绑定语法和层次绑定在现在的ASP.NET 2.0中是完全支持的,所以,你可以在现有的程序中使 用这些技术。新颖(我也认为非常酷)之处,是LINQ匿名类型和LINQ提供的数据构形功能,这个功能使得在ASP.NET 控件里绑定分层数据非常容易。

    上面所有的例子操作的都是本地内存中的集合数据。他们展示了你如何在.NET对象模型中使用LINQ,包括那些你 自己创建的类型。

    在我将来的有关LINQ的文章中,我将深入讨论LINQ,利用新的DLINQ支持使用上面提到的技术来处理关系数据库 ,和通过新的XLINQ支持来处理XML文件和结构。LINQ项目的好处在于,在所有的应用中,其句法和概念都是一 样的,这样,你一旦学会使用LINQ对一个数组或集合做查询,你也就知道了在处理数据库甚至XML文件时所需 的所有概念。

    例如,假如你使用DLINQ生成了Northwinds数据库中供应商(Suppliers)和产品( Products)表相对应的.NET类型(注:你不需要编写任何代码就可以实现),那么要获取分层的数据结果,并且将其绑定到GridView上,你只要写下面这个编码就可以了(注意:我们使用了跟前面的例子一样的数据构形技术,只从数据库中取得两列数据,并且自动地把每个供应商和其对应的产品组合成一个层次结构的结 果):

    using System;  using System.Query;     public partial class Data_Data2 : System.Web.UI.Page  {  protected void Page_Load(object sender, EventArgs e)  {  Northwind db = new Northwind();     GridView1.DataSource = from x in db.Suppliers  & nbsp; where x.Country == "USA"  & nbsp; orderby x.Country  & nbsp; select new {  & nbsp; & nbsp;x.CompanyName,  & nbsp; & nbsp;x.Country,  & nbsp; & nbsp;x.Products  & nbsp;};     GridView1.DataBind();  }  }

    不需要额外的SQL语句和代码──这些就是实现高效获取和组装层次数据所需的所有代码(注意:只取出了需要的 列和行的数据-DLINQ可以使用LINQ的远程函数支持因而我们没必要持久化或者取出所有数据库表或者一行中 的所有列)。而且这些都是类型安全的,同样具有完全的编译时检查,智能感知和调试支 持。

    关于LINQ匿名类型的作用是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


    文章标题:LINQ匿名类型的作用是什么
    当前地址:http://azwzsj.com/article/jcedph.html