如何获得Linq中的组中的所有选择项By子句
问题描述:
我试图让选择按钮的其余部分在此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()
};
如何获得那些选择钥匙?
答
我假设questionid
和time
是要组上的属性:
你只能得到你给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()
};
答
它根本不清楚你在问什么,我害怕。时间是什么”? questionid
和questionid1
有什么区别?
由您进行分组的时候,你已经基本上得到了组序列而不是问题的序列。当您投影这些组时,可以使用该组的Key
属性来获取形成该组的密钥,并且可以使用该组内的值序列(这是您的示例中的g.Count()
正在执行的操作)。例如,您可以在组中查看第一个结果,并访问其中的各个字段。
如果您可以更深入地了解您获得的数据以及您想实现的目标,我们更有可能为您提供帮助。
作为附加说明 - 您的where
条款目前没有做任何事情。当你通过密钥进行分组时,你永远不会得到任何“空白”组--LINQ不会构成不在实际数据中的密钥。