c#分组方式';行不通

c#分组方式';行不通,c#,group-by,C#,Group By,我的c#代码在示例中到处都有问题,他们像我一样做,但不知怎的,我会遇到一些错误 编译器说在g.Datum他不知道Datum 在“返回查询”中,他说-不能转换,有一个显式转换 var query = (from p in dataContext.Untersuchungen orderby p.Datum group p by p.Datum into g let number

我的c#代码在示例中到处都有问题,他们像我一样做,但不知怎的,我会遇到一些错误

编译器说在g.Datum他不知道Datum

在“返回查询”中,他说-
不能转换
,有一个显式转换

     var query = (from p in dataContext.Untersuchungen
                  orderby p.Datum
                  group p by p.Datum into g 
                  let number = (from n in dataContext.Untersuchungen
                                where n.Datum == g.Datum
                                select n).Count()
                  select new StatsistikObjekt() { Date1 = g.Datum, number1 = number });
       return query;
希望你能帮我()

试试看


g.Key
而不是
g.Datum

范围变量
g
的类型是组,它实际上没有
Datum

考虑到您的分组(使用
Datum
作为键),您可以轻松地修复该位,并且只需计算组的大小即可简化查询:

var query = (from p in dataContext.Untersuchungen
             orderby p.Datum
             group p by p.Datum into g
             select new StatsistikObjekt() { Date1 = g.Key,
                                             number1 = g.Count() });

至于返回值-我们无法真正帮助您,因为我们不知道您试图返回的返回类型。

非常有趣;我从来不知道你甚至可以在linq查询中使用
let
。几乎看起来像是C和F=Dg的混合体。我相信数据应该是g.Key。我写了一半的答案,意识到我已经被伟大的乔恩·斯基特提升了。总有一天,好先生,总有一天。@Tim:只要写下你自己的答案,并在事后与Jon的超棒超快答案进行比较。熟能生巧。你发呆的时候不会好起来的。此外,有人可能会喜欢你的答案。@Tim我称之为“被抓”。继续努力。你可能会幸运地得到这样的结果。当前分数;我:1双向飞碟:2000+