可以将此lambda重写为查询表达式

时间:2010-02-15 12:25:10

标签: linq

我经常只需要选择的总计数(或其他聚合),通常是在使用LinqPad巡航一些数据时,例如此查询返回核心库中的公共枚举数。

"".GetType().Assembly.GetTypes().Where(t => t.IsPublic && t.IsEnum).Count()

我知道我可以这样做:

(from t in "".GetType().Assembly.GetTypes() 
where t.IsEnum  && t.IsPublic select t.Name).Count()

但也许是因为在T-SQL中使用了太多年,我发现“select t.Name”有点令人反感。

有没有其他方法可以获得此计数而不说明“select t.Name”

2 个答案:

答案 0 :(得分:3)

select t).Count() 

或者向另一个方向迈进:

"".GetType().Assembly.GetTypes().Count(t => t.IsPublic && t.IsEnum)

答案 1 :(得分:0)

离开我的头顶,你需要按t

进行分组
         from t in "".GetType().Assembly.GetTypes()
         where t.IsEnum && t.IsPublic
         group t by t into x
            select x.Count()