C#字典:丢失数据

时间:2014-10-05 10:28:29

标签: c# dictionary collections

我在c#项目中使用Dictionary进行数据存储。

问题在于,我的词典在几个小时内丢失了一些数据。 为什么呢?

public Dictionary<string, AgentHistory> ConnectRequestHistory = new Dictionary<string, AgentHistory>(); //IP - History

public Dictionary<AgentPlayerObject, AgentPlayerData> PlayerDataList = new Dictionary<AgentPlayerObject, AgentPlayerData>(); // AgentPlayerObject - PlayerData

当我在一段时间后尝试获取PlayerDataList[player].CharName;时,字典已经丢失了。

1 个答案:

答案 0 :(得分:1)

似乎AgentPlayerObject是一个类,其平等成员未实现。

考虑实施平等成员:

另外,请考虑实施IEquatable Interface,即IEquatable<AgentPlayerObject>If you implement IEquatable you still must override Object’s Equals and GetHashCode

  

IEquatable是对此模式的重大改进,因为它提供了强类型的equals方法。这可以保护调用者和被调用者不会传递不兼容的对象类型。此外,它避免了拳击对值类型的开销。