首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime.Quarter在LinQ群中的应用

DateTime.Quarter在LinQ群中的应用
EN

Stack Overflow用户
提问于 2014-05-07 09:43:54
回答 1查看 1.1K关注 0票数 0

我需要在LinQ表达式中按季度分组。下面是使用年份的代码:

代码语言:javascript
复制
temp = rmds.GroupBy(a => new { a.reportinggroup, a.timestep.Year })
           .Select(g => ....}).ToList();

现在,我想用四分之一表达式替换GroupBy中的GroupBy。这是我的分机:

代码语言:javascript
复制
public static int quarter(this DateTime @this)
{
    return (int) Math.Ceiling((double)@this.Month / 3);
} 

但是如果我在我的LinQ中替换它:

代码语言:javascript
复制
 temp = rmds.GroupBy(a => new { a.reportinggroup, a.timestep.quarter() });

我得到以下错误:

错误1无效的匿名类型成员声明器。必须使用成员分配、简单名称或成员访问权限声明匿名类型成员。

为什么?我要用什么按季度分组?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-07 09:46:01

错误信息告诉您选项是什么。a.timestep.quarter()部件在编写时无效,因为:

  • 这不是一个成员分配(例如foo = a.timestep.quarter())
  • 这不是一个简单的名字(例如,只有timestep)
  • 这不是成员访问(例如,a.reportinggroup )

所以这就是你需要做的:

代码语言:javascript
复制
temp = rmds.GroupBy(a => new { a.reportinggroup, quarter = a.timestep.quarter() })
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23514241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档