由于list集合强大的功能,我们经常会使用list添加一些对象,但是在添加过程中可能会希望判断一下将要添加的该对象是否已在list集合中,此时我们很容易就会想到contains该方法,这样问题就会出现了
首先我们在利用该方法进行比较的时候有时明明一个对象没有在集合中却依旧判断为ture,这里不再分析原因只说解决方法:
一、重写equals方法;如:
class YourObject{
private int m_value;
public boolean equals(Object obj){
YourObject your =(YourObject)obj;
if(this.m_value == your.m_value){
return true;
}
return false;
}
}
二、这种方法比较简单,但是却不是利用contains方法了;如:
M.BsCategoryInfo b = listcategory.Find(delegate(M.BsCategoryInfo bc) { return (bc.Id == category.Id); });
总之有时只要能达到预期的目的就行的;