2010-02-15 96 views
2

我經常只想選擇總數(或其他聚合),通常是在巡視某些數據時使用LinqPad,例如此查詢返回的公有枚舉數核心庫。這個lambda是否可以重寫爲查詢表達式

"".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的也許是因爲,我找到「選擇t.Name」有點倒胃口。

是否有另一種方式來獲得這個計數未聲明有「選擇t.Name」

回答

3
select t).Count() 

或在其他方向尋求簡潔:

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

甚至只是'選擇1' – AakashM 2010-02-15 21:12:26

0

關閉我的頭頂,你需要組採用t

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

不,我認爲這將導致1個195個實例(在mscorlib 2.0.0.0中似乎有195個公共枚舉) 但t.IsEnum進入x的組t是有用的。但話說回來,我不確定查詢表達式是否比lamda表達式更可口。感謝提示。 – 2010-02-15 13:58:57

相關問題