我想比较linq中两个值的月份部分,但我得到一个错误
属性或索引器DateTime.Month无法分配给
这是代码
var item = model.Where(d => d.DATE2.Date.Month = dto.StartDate.Month).FirstOrDefault();
model
是具有日期时间属性的对象列表,dto.Startdate也是日期时间
答案 0 :(得分:6)
如果您仔细阅读错误消息,则可能无法提出此问题,因为它足够清楚。无论如何,您必须在此使用==
来比较两个值,=
用于分配目的(基本知识)。进行此小更改后,您的查询将如下所示:
var item = model.Where(d => d.DATE2.Date.Month == dto.StartDate.Month).FirstOrDefault();
您可以使用FirstOrDefault
代替Where
,使其更加简单:
var item = model.FirstOrDefault(d => d.DATE2.Date.Month == dto.StartDate.Month);