2

我有一个我序列化和反序列化的自定义类的哈希集,如何删除早于 1 天的类的旧实例?

4

1 回答 1

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);
}
于 2013-05-11T13:32:18.670 回答