【问题标题】:Multiple column group by on LinqLinq上的多列分组
【发布时间】:2017-06-21 07:01:49
【问题描述】:

我想在多列上使用 group by 但是,不明白我应该如何选择 SAMPLE_TIME,即使我将 Manuel 日期写入采样时间,我也会收到以下错误;

System.InvalidCastException: 'System.ValueTuple`2[System.String,System.String]' 'System.String'

目前我使用的如下;

var dt = (from dr1 in dtTopAll.AsEnumerable()
                          where  dr1.Field<DateTime>("SAMPLE_TIME") <= maxDate
                          group dr1 by ("WAIT_CLASS", "SAMPLE_TIME")  into g
                          select new
                          {
                              SAMPLE_TIME = // How can i select sample_time,
                              WAIT_CLASS = g.Key,
                              WAITS = g.Sum(z => z.Field<double>("WAITS") / 100)
                          }).ToDataTable();

【问题讨论】:

    标签: c# .net linq


    【解决方案1】:

    你试过了吗:

    var dt = (from dr1 in dtTopAll.AsEnumerable()
              where  dr1.Field<DateTime>("SAMPLE_TIME") <= maxDate
              group dr1 by new 
                           {
                              WAIT_CLASS = dr1.Field<string>("WAIT_CLASS"),
                              SAMPLE_TIME = dr1.Field<DateTime>("SAMPLE_TIME")
                           } into g
              select new
                        {
                            SAMPLE_TIME = g.Key.SAMPLE_TIME,
                            WAIT_CLASS = g.Key.WAIT_CLASS,
                            WAITS = g.Sum(z => z.Field<double>("WAITS") / 100)
                        }).ToDataTable();
    

    【讨论】:

    • 在 group by 内部,它会抛出类似 'CS0746 C# Invalid anonymous type member declarator 的错误。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。'
    • @doctorcesar:对不起,我已经更新了帖子,请看一下
    • @doctorcesar:为什么不接受?如果需要,请随时要求更多说明
    【解决方案2】:

    您需要使用 group by new 在组上创建一个新的匿名类型,如果您想选择,您可以使用您的别名。请检查这个; Group By Multiple Column In LINQ in C#

    【讨论】:

      猜你喜欢
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 2013-06-17
      • 2015-12-06
      相关资源
      最近更新 更多