问题如下:    今天在做B/S项目的时候同事说了一个问题,如果定义了两个ListItem对象,并且两个对象的text和value都一样
     
     同事又定义一个Arraylist对象,并且将其中一个ListItem添加到该ArrayList对象中,问题就在这里     在用Arraylist对象的Contains方法比较是否包含另一个ListItem的时候,返回的是True,我就无法理解     按理说两个ListItem对象应该是不同的地址,Contains方法却返回的是True,请问,到底Contains方法是怎么比较的

解决方案 »

  1.   

    ArrayList.Contains()的实现是IList.Contains,而此方法是调用Class中的Equals方法判断是否相等
    对于引用类型,相等定义为对象相等;即这些引用是否引用同一对象。对于值类型,相等定义为按位相等。ValueType 类支持值类型。在调用 objA.Equals(objB) 前,此方法首先检查两个参数是否均为空引用
    参考
    http://www.cnblogs.com/lixianhuei/articles/306336.html