IList.Containe
IList.IndexOf
....

解决方案 »

  1.   

    一般情况下Containe和IndexOf比较的是实例句柄,而不是实例的值。而你两次GetUser都是新实例,所以找不到。
    重载vo对象的Equal试试。
      

  2.   

    ismezy2002说得对,你需要重写一些方法。不然,比较的时候是同一个对象也不会相等。
      

  3.   

    这些方法都是引用比较,而并非像楼主所想的那样。大胆揣测一下楼主是这么做的。select * from .....User u =new User()
    u.Name = load.name;...
    这种情况下,你的Contains等方法永远是false;和ArrayList<T>无关所以不要用ArrayList的Contains方法等,自己去写。
      

  4.   

    我也觉得是因为比较的引用对象,,而用ArrayList的Contains方法会出现混乱..比较引用对象,,都是比较是否引用同一个地址,,如果new重新生成再赋值,,结果一样是错的..所以LZ还是自己的集合类中重写Contains或者直接写更好..