C# Hashset删除旧实例
我有一个自定义类的哈希集,我可以对其进行序列化和反序列化,如何删除早于1天的类的旧实例?您可以使用: (假设C# Hashset删除旧实例,c#,date,hashset,C#,Date,Hashset,我有一个自定义类的哈希集,我可以对其进行序列化和反序列化,如何删除早于1天的类的旧实例?您可以使用: (假设DateTimeProperty是类中的DateTime属性) 是否有一种方法可以在删除之前循环遍历所有已删除的对象 移除它们 @user2372936:然后我会过滤您将首先删除的对象,循环它们并用于删除它们: var toDelete = hashSet1.Where(obj => (now - obj.DateTimeProperty).TotalDays >= 1); f
DateTimeProperty
是类中的DateTime
属性)
是否有一种方法可以在删除之前循环遍历所有已删除的对象
移除它们
@user2372936:然后我会过滤您将首先删除的对象,循环它们并用于删除它们:
var toDelete = hashSet1.Where(obj => (now - obj.DateTimeProperty).TotalDays >= 1);
foreach(var obj in toDelete){
//...;
hashSet1.Remove(obj);
}
自定义类中是否有可用于标识创建日期的序列化时间戳或任何属性。在反序列化过程中,如果无法正确反序列化,则应引发异常。你能不能把它包起来试试看?太酷了!是否有一种方法可以在删除所有已删除的对象之前对其进行循环?@user2372936:然后我会过滤您将首先删除的对象,循环它们并用于删除它们:
var toDelete=hashSet1.Where(同上);foreach(toDelete中的var obj){//…;hashSet1.Remove(obj);}
。据此编辑了我的答案。
var toDelete = hashSet1.Where(obj => (now - obj.DateTimeProperty).TotalDays >= 1);
foreach(var obj in toDelete){
//...;
hashSet1.Remove(obj);
}