欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

Linq查询变量的显式类型化和隐式类型化

创建时间:2014年07月15日 09:16  阅读次数:(8671)
分享到:
查询变量和 select 子句之间的类型关系。 但是,也可以使用 var 关键字指示编译器在编译时推断查询变量(或任何其他本地变量)的类型。 例如,还可以使用隐式类型化表示本主题前面部分中演示的查询示例:
// Use of var is optional here and in all queries.
// queryCities is an IEnumerable<City > just as 
// when it is explicitly typed.
var queryCities =
    from city in cities
    where city.Population  > 100000
    select city;

开始查询表达式
查询表达式必须以 from 子句开头。 它同时指定了数据源和范围变量。 在对源序列进行遍历的过程中,范围变量表示源序列中的每个后续元素。 将根据数据源中元素的类型对范围变量进行强类型化。 在下面的示例中,因为 countries 是 Country 对象数组,所以范围变量也被类型化为 Country, 这样就可以使用点运算符来访问该类型的任何可用成员。
IEnumerable<Country > countryAreaQuery =
    from country in countries
    where country.Area  > 500000
 //sq kmselect country;

在使用分号或延续子句退出查询之前,范围变量将一直位于范围中。

查询表达式可以包含多个 from 子句。 当源序列中的每个元素本身就是集合或包含集合时,可使用附加的 from 子句。 例如,假定您具有一个 Country 对象集合,而其中每个对象都包含一个名为 Cities 的City 对象集合。 若要查询每个 Country 中的 City 对象,请使用两个from 子句,如下所示:
IEnumerable<City > cityQuery =
    from country in countries
    from city in country.Cities
    where city.Population  > 10000
    select city;

结束查询表达式

查询表达式必须以 select 子句或 group 子句结尾。

group 子句

使用 group 子句可产生按照指定的键组织的组序列。 键可以采用任何数据类型。 例如,下面的查询创建一个组序列,该序列包含一个或多个 Country 对象,并且它的键是 char 值。
var queryCountryGroups =
    from country in countries
    group country by country.Name[0];
窍钟械募际跫芄鼓艽硭薄U庋龅慕峁褪牵焊s
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 4+27=? 的结果(结果是:31)
结  果: