2009-10-13 38 views
0

我試圖讓選擇按鈕的其餘部分在此LINQ查詢,但智能感知是給我一個錯誤如何獲得Linq中的組中的所有選擇項By子句

var query2 = from row2 in query1 
        group row2 by row2.questionid into g 
        where g.Count() > 0 
        select new 
        { 
         questionid1, //Error here 
         time,   //Error here 
         thecount = g.Count() 
        }; 

如何獲得那些選擇鑰匙?

回答

6

我假設questionidtime是要組上的屬性:

你只能得到你給G分組,並作爲喬恩的鑰匙已經提出的where子句實際上並沒有做任何東西。

試試這個:

var query2 = from row2 in query1 
      group row2 by new { row2.questionid, row2.time } into g 
//   where g.Count() > 0 
      select new 
      { 
       g.Key.questionid, 
       g.Key.time, 
       thecount = g.Count() 
      }; 
0

它根本不清楚你在問什麼,我害怕。時間是什麼」? questionidquestionid1有什麼區別?

由您進行分組的時候,你已經基本上得到了組序列而不是問題的序列。當您投影這些組時,可以使用該組的Key屬性來獲取形成該組的密鑰,並且可以使用該組內的值序列(這是您的示例中的g.Count()正在執行的操作)。例如,您可以在組中查看第一個結果,並訪問其中的各個字段。

如果您可以更深入地瞭解您獲得的數據以及您想實現的目標,我們更有可能爲您提供幫助。

作爲附加說明 - 您的where條款目前沒有做任何事情。當你通過密鑰進行分組時,你永遠不會得到任何「空白」組--LINQ不會構成不在實際數據中的密鑰。

相關問題