Hashset删除旧实例

时间:2013-05-11 13:28:10

标签: c# date hashset

我有自定义类的hashset,我将其序列化和反序列化,如何删除比1天更早的类的旧实例?

1 个答案:

答案 0 :(得分:1)

您可以使用HashSet.RemoveWhere

DateTime now = DateTime.Now;
hashSet1.RemoveWhere(obj => (now - obj.DateTimeProperty).TotalDays >= 1);

(假设DateTimeProperty是您班级中的DateTime属性)

  

有没有办法可以在我之前遍历所有已删除的对象   删除它们?

@ user2372936:然后我会过滤你首先删除的对象,循环它们并使用HashSet.Remove(obj)删除它们:

var toDelete = hashSet1.Where(obj => (now - obj.DateTimeProperty).TotalDays >= 1);
foreach(var obj in toDelete){
    //...;
    hashSet1.Remove(obj);
}