C# 方法,该方法正在获取自同一方法上次运行以来的所有最新更新
我不知道如何写标题,但无论如何。我有一种方法,可以在10到60秒内随机向我发送对象(电子邮件)。现在的问题是,我需要创建一个名为getNewMessages的新方法,该方法返回上次调用该方法时的新电子邮件列表C# 方法,该方法正在获取自同一方法上次运行以来的所有最新更新,c#,list,C#,List,我不知道如何写标题,但无论如何。我有一种方法,可以在10到60秒内随机向我发送对象(电子邮件)。现在的问题是,我需要创建一个名为getNewMessages的新方法,该方法返回上次调用该方法时的新电子邮件列表 假设我第一次调用此方法时,它会收到所有新邮件(这部分不是问题),但第二次调用时,旧邮件应该从列表中删除,新邮件应该填充列表,自从上次调用该方法以来。创建一个封闭实体,以便检索最后一个日期,然后使用Linq查询仅获取新的日期 样本: var result = list.Where(v=>
假设我第一次调用此方法时,它会收到所有新邮件(这部分不是问题),但第二次调用时,旧邮件应该从列表中删除,新邮件应该填充列表,自从上次调用该方法以来。创建一个封闭实体,以便检索最后一个日期,然后使用Linq查询仅获取新的日期 样本:
var result = list.Where(v=>v.LastUpdate > _lastUpdate);
_lastUpdate = DateTime.Now;
result.ToList().ForEach(v=>v.LastUpdate = _lastUpdate);
你的问题很模糊,所以很难给出具体的答案。但也许有些想法可以帮助你 您收到的每封邮件都会获得某种唯一的id。在您的情况下,该id可能来自发件人和收到邮件的时间戳。也许你应该写一个,并考虑这一点的实现。然后,您只需将所有邮件放入一个文件夹中,当您的方法被调用时,您只需在那里检查您是否已经计算了此消息
如果您不想将所有邮件存储在
HashSet
中(可能是为了提高内存占用),您可以调用mymailcomarer.GetHashCode(email)
并将所有结果放入HashSet
中,然后丢弃邮件。但请注意,这可能会删除一条新消息,因为两条不同的消息可能会生成相同的哈希代码,因此需要使用Equals()
方法在这种情况下检查两条消息是否真的相等,但这就需要将邮件保存在内存中。在您的情况下,什么是电子邮件
对象?你如何储存它们?向我们显示“您的方法”的代码