Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 方法,该方法正在获取自同一方法上次运行以来的所有最新更新_C#_List - Fatal编程技术网

C# 方法,该方法正在获取自同一方法上次运行以来的所有最新更新

C# 方法,该方法正在获取自同一方法上次运行以来的所有最新更新,c#,list,C#,List,我不知道如何写标题,但无论如何。我有一种方法,可以在10到60秒内随机向我发送对象(电子邮件)。现在的问题是,我需要创建一个名为getNewMessages的新方法,该方法返回上次调用该方法时的新电子邮件列表 假设我第一次调用此方法时,它会收到所有新邮件(这部分不是问题),但第二次调用时,旧邮件应该从列表中删除,新邮件应该填充列表,自从上次调用该方法以来。创建一个封闭实体,以便检索最后一个日期,然后使用Linq查询仅获取新的日期 样本: var result = list.Where(v=>

我不知道如何写标题,但无论如何。我有一种方法,可以在10到60秒内随机向我发送对象(电子邮件)。现在的问题是,我需要创建一个名为getNewMessages的新方法,该方法返回上次调用该方法时的新电子邮件列表


假设我第一次调用此方法时,它会收到所有新邮件(这部分不是问题),但第二次调用时,旧邮件应该从列表中删除,新邮件应该填充列表,自从上次调用该方法以来。

创建一个封闭实体,以便检索最后一个日期,然后使用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()
方法在这种情况下检查两条消息是否真的相等,但这就需要将邮件保存在内存中。

在您的情况下,什么是
电子邮件
对象?你如何储存它们?向我们显示“您的方法”的代码