我不確定如何編寫標題,但無論如何。我有一種方法可以隨意地發送10到60秒內的對象(電子郵件)。現在是我需要創建一個稱爲getNewMessages的新方法的問題,該方法返回上次調用方法時爲NEW的電子郵件列表。從最後一次使用同一方法後得到所有最新更新的方法
因此,讓我們說我第一次調用這個方法時,它會得到所有新的電子郵件(這部分不是問題),但第二次我打電話時,舊電子郵件應該從列表中刪除,新的電子郵件自上次我們稱之爲方法以來,應該填寫清單。
我不確定如何編寫標題,但無論如何。我有一種方法可以隨意地發送10到60秒內的對象(電子郵件)。現在是我需要創建一個稱爲getNewMessages的新方法的問題,該方法返回上次調用方法時爲NEW的電子郵件列表。從最後一次使用同一方法後得到所有最新更新的方法
因此,讓我們說我第一次調用這個方法時,它會得到所有新的電子郵件(這部分不是問題),但第二次我打電話時,舊電子郵件應該從列表中刪除,新的電子郵件自上次我們稱之爲方法以來,應該填寫清單。
做一個封閉的實體,以便將檢索,然後使用LINQ查詢得到的最後日期只有換新
樣品:
var result = list.Where(v=>v.LastUpdate > _lastUpdate);
_lastUpdate = DateTime.Now;
result.ToList().ForEach(v=>v.LastUpdate = _lastUpdate);
你的問題是相當模糊,所以還是比較難給出一個具體的答案。但也許有些想法可能會幫助你。
您收到的每封郵件都會獲得某種唯一的ID。這個ID可能來自發件人和收到的郵件的時間戳。也許你應該寫一個IEqualityComparer
並考慮這個GetHashCode
algorithm爲你的實現。然後,您只需將所有郵件放入new HashSet<Email>(MyEqualityComparer)
中,當您的方法被調用時,您可以簡單地在那裏查看是否已經計算了此消息。
如果你不喜歡存儲HashSet<T>
內的所有郵件(也許,以提高內存佔用),你可以調用MyMailComparer.GetHashCode(email)
,並把所有的結果爲HashSet<int>
事後丟棄郵件。但請注意,這可能會丟棄一條新消息,因爲有可能兩條不同的消息可能產生相同的散列碼,因此需要使用Equals()
方法來檢查這種情況,如果兩個消息都是真的相等的話,但這會使有必要將郵件保存在內存中。
什麼是你的情況下的'電子郵件'對象?你如何儲存它們?向我們顯示'你的方法'的代碼 –