Linq 这个lambda可以作为查询表达式重新编写吗

Linq 这个lambda可以作为查询表达式重新编写吗,linq,Linq,我通常只需要选择的总计数(或其他聚合),通常是在浏览某些数据时,例如使用返回核心库中公共枚举数的查询 "".GetType().Assembly.GetTypes().Where(t => t.IsPublic && t.IsEnum).Count() 我知道我可以这样做: (from t in "".GetType().Assembly.GetTypes() where t.IsEnum && t.IsPublic select t.Name).Co

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

"".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中工作了太多年,我觉得“selectT.Name”有点让人讨厌


有没有其他方法可以不在我的头顶上写下“select t.Name”(选择t.Name)而获得此计数,您需要按t分组

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

或者在另一个方向上简洁:

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

不,我认为这将导致195例1。(在mscorlib 2.0.0.0中似乎有195个公共枚举)然而,t组由t.IsEnum进入x组则起到了作用。但是,尽管如此,我不确定查询表达式是否比lamda表达式方法更令人满意。谢谢你的提示。
"".GetType().Assembly.GetTypes().Count(t => t.IsPublic && t.IsEnum)