Linq的问题分组

时间:2009-05-19 14:25:49

标签: c# .net linq

我遇到了LINQ的问题,我希望有人可以向我解释原因。我有这段代码:

        List<Spec> specs = GetSpecs(userObject, seasonID, partnershipID);

        var query = from s in specs
                    where (DateTime)s.FinalApprovedDate != null
                    && !((DateTime)s.FinalApprovedDate).Equals(DateTime.Parse("1/1/1900 12:00:00 AM"))
                    group s by s.ForCompanyID into g 
                    select new
                    {
                        Vendor = g.Key,
                        Avg = g.Average(s.FinalApprovedDate.Subtract((DateTime)s.Created_Date).Days)
                    };

我想从此查询中检索的是由ForCompanyID表示的每个公司的创建日期和最终批准日期之间的平均天数差异,其中日期不为空或“1/1/1900”。我的问题是我无法弄清楚如何从这个查询中获取这些数据。根据我的阅读,我相信这是正确的语法,但我得到一个“名称''在当前上下文中不存在于新值下的s值。我也尝试过这里用g但这不是有价值观。有什么想法吗?

1 个答案:

答案 0 :(得分:7)

尝试将倒数第二行更改为:

Avg = g.Average(s => s.FinalApprovedDate.Subtract((DateTime)s.Created_Date).Days)