有没有一种简单的方法可以根据它的数据为类创建一个哈希键? 或者一些接口?
我有Dictionary<MyClass, int>
。
MyClass非常简单,它包含一个名称和一个字符串数组:
class MyClass
{
public string Name {get; private set;}
public string[] Attributes {get; private set; }
//and a constructor and some methods
}
现在,如果我有两个包含相同名称和属性的MyClass
实例,我需要将该字典视为具有相同的密钥。
我试图使它成为一个结构,并试图创建一个Dictionary<string[], int>
,但所有三种情况都是相同的,即使有相同的数据,dicionary也会看到每个实例的不同键。
我可以创建一个带有名称和所有参数的算法的字符串键,并创建一个Dictionary<string, int>
,但我想要更自动的东西。还有其他方法吗?
也许是一个界面(这不会避免一个algorythm,但总比没有好。)
答案 0 :(得分:4)
您需要覆盖Equals()
和GetHashCode()
以按值比较实例。