我在使用 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’在新的 s 值的当前上下文中不存在。我也在这里用 g 尝试过这个,但那不存在也有值(value)观。有什么想法吗?
最佳答案
尝试将倒数第二行更改为:
Avg = g.Average(s => s.FinalApprovedDate.Subtract((DateTime)s.Created_Date).Days)
关于c# - 在 Linq 中按问题分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/883108/