ArrayList ListA = new ArrayList();
ArrayList ListB = new ArrayList();
string str = "aaa";ListA.Add(str);
ListB.Add(str);if (ListA.Equals(ListB))
return true;
else
return false;为什么两个的返回false。
如何比较两个ArrayList的值是否相等?
ArrayList ListB = new ArrayList();
string str = "aaa";ListA.Add(str);
ListB.Add(str);if (ListA.Equals(ListB))
return true;
else
return false;为什么两个的返回false。
如何比较两个ArrayList的值是否相等?
实际比较的是2个引用是否相同
{
if (obj == null || GetType() != obj.GetType()) return false;
return ((Party)obj).PartyName.Equals(partyName)
&& ((Party)obj).parents.Equals(parents)
&& ((Party)obj).children.Equals(children);
}public override int GetHashCode()
{
return partyName.GetHashCode() ^ children.GetHashCode() ^ parents.GetHashCode();
}其中parents和children是ArrayList类型,所以这样就会出错!
ArrayList ListB = ListA;
string str = "aaa";ListA.Add(str);
ListB.Add(str);if (ListA.Equals(ListB))
return true;
else
return false;这样就相等啦
我也知道这样相等了,但我想知道如何实现两个List值比较的方法,真的得一个一个读出来进行比较?
{
using(IEnumerator<T> e1 = first.GetEnumerator())
{
using(IEnumerator<T> e2 = second.GetEnumerator())
{
while(e1.MoveNext())
{
if(!(e2.MoveNext() && object.Equals(e1.Current, e2.Current))) return false;
}
if(e2.MoveNext()) return false;
}
}
return true;
}
ArrayList ListA = new ArrayList();
ArrayList ListB = new ArrayList();
string str1 = "1";
string str2 = "2";ListA.Add(str1);
ListB.Add(str2);
ListA.Add(str2);
ListB.Add(str1);这样的列表 ListA 和ListB 相等吗? 要是相等,比较就更麻烦了.:)
ICompare comparable = e1.Current as ICompare;
if ( comparable != null )
....
用 generics 的是懒人,不是高手
--------------------------------
原来泛型在你的眼中不值一提, 呵