2009-10-13 39 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不会构成不在实际数据中的密钥。

相关问题