2014-10-09 67 views
0

我知道這個問題類似於我的前一個,但我不知道這一點。LINQ分組和計數

數據:

dept needOn status 
foo 5/1/2011 closed 
foo 5/1/2011 closed 
foo 5/1/2011 closed 
foo 5/1/2011 closed 
foo 5/1/2011 open 
foo 5/1/2011 open 

尋找這樣的輸出:

dept needOn status count 
foo 5/1/2011 closed 4 
foo 5/1/2011 open  2 

我想這會工作:

var query3 = from q3 in query2 
      group new { q3.Status } 
       by new { q3.Dept, q3.NeedOnWeek, q3.Status } into g 
      select new 
      { 
       dept = g.Key.Dept, 
       needOnWeek = g.Key.NeedOnWeek, 
       status = g.Key.Status, 
       count = g.Count(x => x.Status) 
      }; 

這兩個錯誤適用於:count = g.Count(x => x.Status)

錯誤1無法將lambda表達式轉換爲委託類型'System.Func',因爲塊中的某些返回類型不能隱式轉換爲委託返回類型

錯誤2不能將類型'字符串'隱式轉換爲'bool'

感謝您的耐心和幫助。

回答

2
var query3 = from q3 in query2 
      group q3 
       by new { q3.Dept, q3.NeedOnWeek, q3.Status } into g 
      select new 
      { 
       dept = g.Key.Dept, 
       needOnWeek = g.Key.NeedOnWeek, 
       status = g.Key.Status, 
       count = g.Count() 
      };