LINQ匿名类型剖析

开发 后端
这里介绍LINQ匿名类型,LINQ能够利用的另一个C#和VB新特性之一就是对“LINQ匿名类型”的支持,这允许你不需明确声明对象模型就能很容易地创建和使用内联的类型结构。

LINQ有很多值得学习的地方,这里我们主要介绍LINQ匿名类型,包括介绍新建一个具有City和Distance 两个属性的LINQ匿名类型来实现等方面

LINQ匿名类型(Anonymous Types)

LINQ能够利用的另一个C#和VB新特性之一就是对“LINQ匿名类型”的支持。这允许你不需明确声明对象模型就能很容易地创建和使用内联的类型结构,因为类型可以通过数据的初始 化推断出来。这在使用LINQ查询“自定义构形(custom shape)”数据时非常的有用。

例如,考虑这样一个场景:你正在处理一个具有许多属性的数据库或者强类型的集合-但是你只关心其中少数的 几个字段。与创建和处理整个类型相比,仅返回你所需要的字段将会更加有用些。我们来新建一个"step6.aspx"文件来实现以上操作:

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Step6.aspx.cs" Inherits="Step6" %> 
    <html>  <body>  <form id="form1" runat="server">  <div>      <h1>Anonymous Type</h1>      <asp:GridView ID="GridView1" runat="server">  </asp:GridView>      </div>  </form>  </body>  </html> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.


在我们的后台代码文件中我们将编写一个使用LINQ匿名类型的LINQ查询,如下所示:

using System;  
using System.Web.UI;  
using System.Query;  
   
public partial class Step6 : System.Web.UI.Page  
{  
protected void Page_Load(object sender, EventArgs e)  
{  
TravelOrganizer travel = new TravelOrganizer();  
   
GridView1.DataSource = from location in travel.PlacesVisited  
& nbsp; orderby location.City  
& nbsp; select new {  
& nbsp; & nbsp;City = location.City,  
& nbsp; & nbsp;Distance = location.Distance  
& nbsp; };  
 
GridView1.DataBind();  
}  
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

注意,我们并没有像上面一样从select子句中返回一个"location"对象,我们通过新建一个具有City和Distance 两个属性的LINQ匿名类型来实现。这两个属性的类型是根据它们初始化时赋与的值来自动确定的,在这里是一个是 string,另一个是int。

【编辑推荐】

  1. LINQ to SQL Table浅谈
  2. Linq语句问题的解决方法
  3. Ling to sql更新实体概述
  4. Linq实体继承简单描述
  5. Linq Library概述
责任编辑:佚名 来源: 博客园
相关推荐

2009-09-10 14:21:58

LINQ匿名类型

2009-09-14 15:50:52

Linq匿名委托类型

2009-09-11 10:16:07

Linq匿名类型

2009-09-17 11:35:40

Linq匿名类型

2009-09-17 13:15:20

LINQ查询

2009-09-16 16:59:05

LINQ to XML

2009-09-14 15:12:40

LINQ to XML

2009-09-09 14:40:43

Linq to sql

2009-09-09 16:21:31

Linq使用sqlme

2009-09-14 10:13:02

LINQ查询操作

2009-09-09 13:39:05

Linq用户定义函数

2009-09-14 10:35:15

Linq内部执行原理

2009-09-18 17:17:58

LINQ模型

2009-09-16 09:56:42

LINQ to SQL

2009-09-08 16:20:12

LINQ to SQL

2009-09-08 15:39:13

Linq使用Inser

2009-09-15 14:52:15

linq级联删除

2009-09-17 09:20:34

Linq和dLinq区

2009-09-10 15:35:07

LINQ查询表达式

2009-09-07 16:25:14

Linq To SQL
点赞
收藏

51CTO技术栈公众号