光脚丫学LINQ(012):LINQ查询操作中的类型关系
视频演示:http://u.115.com/file/f2458259e9
若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的。如果您了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例。另外,还能了解在使用 var 隐式对变量进行类型化时的后台操作。
LINQ 查询操作在数据源、查询本身及查询执行中是强类型的。查询中变量的类型必须与数据源中元素的类型和 foreach 语句中迭代变量的类型兼容。此强类型保证在编译时捕获类型错误,以便可以在用户遇到这些错误之前更正它们。
为了演示这些类型关系,下面的大多数示例对所有变量使用显式类型。最后一个示例演示在您利用使用 var 的隐式类型时,如何应用相同的原则。
数据源的类型参数决定范围变量的类型。
选择的对象的类型决定查询变量的类型。
让编译器推断类型信息
虽然您应该了解查询操作中的类型关系,但是您也可以选择让编译器为您执行全部工作。关键字 var 可用于查询操作中的任何局部变量。下图与前面讨论的第二个示例完全等效。唯一的区别是编译器将为查询操作中的各个变量提供强类型。