无效的匿名类型成员声明符
本文关键字:成员 声明 类型 无效 | 更新日期: 2023-09-27 18:31:35
根据此MSDN论坛帖子,我对以下应该有效的代码有问题。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace LINQTest
{
class Program
{
class Schedule
{
public int empid { get; set; }
public int hours { get; set; }
public DateTime date { get; set; }
public DateTime weekending { get; set; }
}
static void Main(string[] args)
{
List<Schedule> Schedules = new List<Schedule>();
var bla = from s in Schedules
group s by new { s.empid, s.weekending} into g
select 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)};
从表达式赋值时,编译器无法推断属性名称:
匿名类型(C# 编程指南)
必须为使用表达式初始化的属性提供名称 (...)