Home > i.t. > Professional C# 学习笔记之集合

Professional C# 学习笔记之集合

December 31st, 2005

1.ArrayList有点像动态数组。
2.集合:实现System.Collections.IEnumerable。
3.IEnumerable实现一个方法GetEnumerator,返回IEnumerator。
4.Ienumerator有三个成员,current返回集合中的当前对象;MoveNext方法:移动到集合的下一元素上,如果成功下移,返回true,如果已过最后一个元素,返回false;Reset方法:移动到第一个元素前面(注意不是第一个!)。
5.如果键是字符串,可用System.Collections.Specialized.StringDictionary来代替Hashtable。
6.在字典使用内部算法时,如果容量是一个素数,它们的工作效率最高。
7.如果A.Equals(B)是True,则A.GetHashCode()和B.GetHashCode()必须返回相同的散列。
8.一般来说,做键的对象都要重写Equals()和GetHashTable(),因为System.Object.Equals()仅比较引用,GetHashTable()会根据对象的地址返回一个散列。则只有键是相同的对象时,才是相等的。
9.Microsoft已经为String类提供了一种虽然复杂、但很有效的散列算法。如果要自己设计散列算法,有一个简单方法,把对象中表示对象唯一性的成员字段们的数字乘以不同的素数再加起来。

Technorati : ,

Administrator i.t.

Comments are closed.