比如class KeyClass
{
    public Type Type{ get; set; }
    public string Name { get; set; }
}是不是要重写GetHashCode Equals什么的?

解决方案 »

  1.   

    不写也可以, 用默认的Equals比较引用
      

  2.   

    public Dictionary<KeyClass, MyResultType> 我的词典= new 
    Dictionary<KeyClass, MyResultType>();
      

  3.   


    值?那么你应该用值做key,而不是整个对象。你也可以重写GetHashcode方法返回值。
      

  4.   


    可能我描述的不够清晰,就是如果两个属性Type和Name的值都相等的话,就判定整个对象相等。还想请教一下大师,这样的话,GetHashcode内部应该怎么编写呢。
      

  5.   


    return (Name+Type.Name).GetHashcode();
      

  6.   

    搞定了,GetHashcode和Equals两个方法都必须重写才行..
      

  7.   

    你的意思是实现IEqualeable接口就可以了吗?
    但我看你的类像是要实现索引一样!!!
      

  8.   

    看了一下dictionary的源码,确实也是这样。