struct aa
{
public int key;
public int value;
}aa a1 = new aa();Hashtable ht = new Hashtable();
ht.Add(1, a1);
ht.Add(2, a1);
。
。
。
我想遍历ht,把其中struct.key和struct.value相同的去掉。应该怎么做?
{
public int key;
public int value;
}aa a1 = new aa();Hashtable ht = new Hashtable();
ht.Add(1, a1);
ht.Add(2, a1);
。
。
。
我想遍历ht,把其中struct.key和struct.value相同的去掉。应该怎么做?
{
public int key;
public int value;
}aa a1 = new aa();Hashtable ht = new Hashtable();
ht.Add(a1.key+a1.value, a1);
ht.Add(a2.key+a2.value, a2);
//如果一样不允许add的,不就可以了,这样也就不用移除了
{
public int key;
public int value;
public int Compare(
object x,
object y
)
{
....
}
}
重写
Equal 和 GetHashCode
IDictionaryEnumerator enu=ht.GetEnumerator();
while (enu.MoveNext())
{
DictionaryEntry de = (DictionaryEntry)enu.Current;
//比较de.Value
}
1. 重写Structure的Equal和GetHashCode,这样在调用Add的时候重复的项就无法添加。
2. 如果不愿意重写,那只有首先遍历一次,用另外一个List之类的容器得到所有重复项,然后逐个删除。
比如我想取得所有aa.key
谢谢