我试图在这个linq查询中获取其余的选择键,但是intellisense给了我一个错误
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()
};
如何获取这些选择键?
答案 0 :(得分:6)
我假设questionid
和time
是您想要分组的属性:
您只能从g获取您分组的密钥,并且Jon建议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()
};
答案 1 :(得分:0)
我不清楚你在问什么,我害怕。时间是什么”? questionid
和questionid1
之间的区别是什么?
当你分组时,你基本上得到了一系列组而不是一系列问题。当您投影这些组时,您可以使用组的Key
属性来获取组成该组的键,并且您可以使用组内的值序列(g.Count()
是where
做你的例子)。例如,您可以在组中获取第一个结果,并访问其中的各个字段。
如果你能更多地了解你所获得的数据以及你想要实现的目标,我们就更有可能帮助你。
作为补充说明 - 您的{{1}}条款目前没有做任何事情。当您按键分组时,您永远不会得到任何“空”组 - LINQ不会构成不在实际数据中的键。