1

有没有一种简单的方法可以根据它的数据为一个类创建一个哈希键???或者一些接口?

我有一个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>,但所有三种情况都是平等的,字典为每个实例看到不同的键,即使有相同的数据。

我可以创建一个带有名称和所有参数的算法的字符串键,并创建一个Dictionary<string, int>,但我想要更自动的东西。还有其他方法吗?也许是一个接口(这不会避免算法,但总比没有好)。

4

1 回答 1

4

您需要按值覆盖Equals()GetHashCode()比较实例。

于 2013-05-17T18:02:24.807 回答