2

我正在尝试计算列表中的对象。我的代码如下所示:

var count = tempMessages
                 .Where(MessageDate => MessageDate > DateTime.Now.AddSeconds(-6))
                 .Count();

如您所见,我正在尝试计算 MessageDate 最长为 6 秒的消息。但我收到此错误消息:

运算符“>”不能应用于“ChatProj.Models.Message”和“System.DateTime”类型的操作数

4

2 回答 2

4

因为 tempMessages 是 'ChatProj.Models.Message 类型的列表,而不是 DateTime,所以 Message 上可能有一个 Date 属性,因此您可以编写以下代码:

var count = tempMessages.Where(Message => Message.Date > DateTime.Now.AddSeconds(-6)).Count();
于 2013-10-21T09:36:12.353 回答
3

tempMessages是自定义类的可枚举MessageWhere该类会将其作为表达式的参数,因此您需要访问其中的日期属性:

还有一个重载Count可以用一个表达式来保存:http Where: //msdn.microsoft.com/en-us/library/bb535181.aspx

var checkDate = DateTime.Now.AddSeconds(-6);

var count = tempMessages
    .Count(message => message.Date > checkDate);

错误消息突出显示了这一点,您试图说“我的消息是否大于此日期”,而不是“此消息的日期是否大于此日期”。

于 2013-10-21T09:33:57.070 回答