【问题标题】:c# group by doesn't workc# group by 不起作用
【发布时间】:2011-05-16 15:00:15
【问题描述】:

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

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

在“返回查询”中他说 - cannot convert,有一个明确的转换

     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;

希望你能帮助我=)

【问题讨论】:

  • 非常有趣;我从来不知道你甚至可以在 linq 查询中使用let。几乎看起来像是 C# 和 F# 的混合体 =D
  • g.Datum 应该是 g.Key,我相信。

标签: c# group-by


【解决方案1】:

范围变量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() });

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

【讨论】:

  • 我写了一半的答案,意识到我已经被伟大的 Jon Skeet 提升了。一天,好先生,一天。
  • @Tim:写下你自己的答案,并在事后将其与 Jon 的超棒超快速答案进行比较。熟能生巧。你不会在发呆中变得更好。此外,有人可能会喜欢你的回答。
  • @Tim 我称之为“skeet'd”。继续尝试。你可能会很幸运,最终得到类似i.imgur.com/GLcaM.png 的东西。当前分数;我:1飞碟:2000+
【解决方案2】:

试试

g.Key 而不是g.Datum

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 1970-01-01
    • 2017-12-23
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2013-03-02
    相关资源
    最近更新 更多