我有自定义类的hashset,我将其序列化和反序列化,如何删除比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);
}