定义:
匿名类型是指包括一个或多个公共属性的类类型, 它提供了将查询结果临时组合在一起的捷径,从而不需要为每个查询结果集合指定一个有名称了类型.
在LINQ中,匿名类型广泛使用与查询表达式中的select子句,它们返回查询序列中每个元素属性的子集.
可以使用new操作符和对象初始化器来创建匿名类型.
匿名类型是直接从Object类继承而来,作为一个参考类型存在.
编译器给匿名类型分配一个名称,这个名称在源码级是不可用的.对于CLR来说,匿名类型与其他任何类型相比并不存在不同.
查询表达式可以将一个对象序列转化为一个具有不同形式和值的对象.
下面我们就直接看代码来体验一下吧:
1. 新建一个Linq To SQL类,连接上SQL 2005的示例数据库AdventureWorks,将Contact表拖拽入程序中:
2. 编写如下代码:
代码
运行结果:
虽然我们定义的对象c包括15个字段,但是返回的序列只包含3个字段:
可以只返回对象中的部分信息,这是匿名类型的优势所在.
此外,使用匿名类型时还可以对序列中的某个字段重新命名:
代码
运行结果:
可以看出我们将EmailAddress字段重命名为Email了.
好了,以上就是匿名类型在查询表达式中的应用示例,希望对初学LINQ的朋友有帮助.
相关文章8.Linq初级班 Linq To XML体验(高级编程篇)
本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/12/28/1918325.html,如需转载请自行联系原作者