Type Relationships in Query Operations (LINQ) (查询操作中的类关系)

LINQ查询操作的数据都是强类型,包括数据源,查询本身。和执行查询中。使用中的变量类型必须兼容数据源中的元素和在foreach中使用的变量。强类型确保错误可以在编译的时候被发现。

net3.0为了方便使用强类型使用了type inference叫做”implicit typing“,(隐性声明,熟悉javascript和vb应该很熟悉)

例如:var city = "Redmond";

重要的是必须明白这些隐性变量在数据源,查询中,已经执行查询的loop中有同样的类型关系。对这些关系有个基本的了解是很有用的,尤其是在类型转换的时候。

一。没有对源数据进行数据转换或加工的查询

图例:

查看更多精彩图片

1数据源中的类型和查询的类型是一致的

2数据源中的对象类型决定了查询中的数据类型,所以查询中使用Ienumerable<>是string

3执行查询中的循环迭代也是string

二。改变源数据的查询操作

查看更多精彩图片

select语法返回了customer的name字段而不是整个customer。而name是字符串。所以iqueryable是string。执行查询的循环迭代也是string

查看更多精彩图片

这个图片和上面其实是一直的。返回数据的时候做了转换

三。让编译器来推断类型

就是使用var关键字拉

查看更多精彩图片



本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

原文地址:https://www.cnblogs.com/zjypp/p/2319485.html