C# 无效的匿名类型成员声明符

C# 无效的匿名类型成员声明符,c#,C#,我有一个问题,下面的代码应该工作,根据 使用系统; 使用System.Collections.Generic; 使用System.IO; 使用System.Linq; 使用系统文本; 名称空间LINQTest { 班级计划 { 课程表 { 公共int empid{get;set;} 公共整数小时数{get;set;} 公共日期时间日期{get;set;} 公共日期时间周末{get;set;} } 静态void Main(字符串[]参数) { 列表计划=新列表(); var bla=来自明细表中的

我有一个问题,下面的代码应该工作,根据

使用系统;
使用System.Collections.Generic;
使用System.IO;
使用System.Linq;
使用系统文本;
名称空间LINQTest
{
班级计划
{
课程表
{
公共int empid{get;set;}
公共整数小时数{get;set;}
公共日期时间日期{get;set;}
公共日期时间周末{get;set;}
}
静态void Main(字符串[]参数)
{
列表计划=新列表();
var bla=来自明细表中的s
由新的{s.empid,s.weekending}将s分组为g
选择new{g.Key.empid,g.Key.weekending,g.Sum(s=>s.hours)};
}
}
}
我得到了sum函数的错误: 无效的匿名类型成员声明符。匿名类型成员必须使用成员分配、简单名称或成员访问权限声明


怎么了?

您必须命名用于存储
Sum
方法结果的属性:

select new { g.Key.empid, g.Key.weekending, Sum = g.Sum(s=>s.hours)};
从表达式中赋值时,编译器无法推断属性名称:

必须为正在使用表达式(…)初始化的属性提供名称


属性
g.Sum(s=>s.hours)
的名称应该是什么?请提供您的匿名类型成员名称:)@retailcoder只有一个需要名称。您都是正确的。我需要给房子命名。
select new { g.Key.empid, g.Key.weekending, Sum = g.Sum(s=>s.hours)};