我正在尝试计算列表中的对象。我的代码如下所示:
var count = tempMessages
.Where(MessageDate => MessageDate > DateTime.Now.AddSeconds(-6))
.Count();
正如您所看到的,我正在尝试计算MessageDate最长6秒的消息。但我收到此错误消息:
运营商'>'不能应用于类型的操作数 'ChatProj.Models.Message'和'System.DateTime'
答案 0 :(得分:4)
因为tempMessages是一个类型为'ChatProj.Models.Message而不是DateTime的列表,所以可能在Message上有一个Date属性,所以你可以编写这段代码:
var count = tempMessages.Where(Message => Message.Date > DateTime.Now.AddSeconds(-6)).Count();
答案 1 :(得分:3)
tempMessages
是自定义类Message
的可枚举,Where
类将其作为表达式的参数,因此您需要访问其中的日期属性:< / p>
Count
上还有一个重载,可以使用表达式来保存Where
:http://msdn.microsoft.com/en-us/library/bb535181.aspx
var checkDate = DateTime.Now.AddSeconds(-6);
var count = tempMessages
.Count(message => message.Date > checkDate);
错误消息突出显示此消息,您试图说“我的消息大于此日期”,而不是“此消息的日期大于此日期”。