-
锯齿数组: 锯齿数组就是数组的数组。例如:
New int []{ 1 , 1 , 1 };
New int []{ 23 , 12 };
}
2.Out与ref:将数组作为参数传递时,在调用函数之前不需要初始化out参数,但调用的函数必须在返回前分配数组类型。而且,ref参数必须在函数调用之前分配。
3. 枚举数(enumerator):
它是一个对象,可以通过它对集合项进行便利。枚举数只能读取但不能改变集合的至。在实例化后,会被放在集合第一个元素之前。如果不调用movenexe就直接使用current访问的话会出错。当枚举数到达集合的末尾时,会停留在集合的最后一个元素后面,并返回假。如果此时继续使用current也会出错。
主要方法属性:
-
current返回集合中的当前对象;
-
Movenext 将枚举项后移一项;
-
Reset 将枚举数移到初始位置。
4.几种常用的集合:
A.Arraylisy:使用add,remove等对元素进行操作。
B.Stack:是一种后进先出结构。有push。Pop。peek三种方法。
C.Hashtable:这是一种键值对集合。该集合与前面的两种集合不太一样,我写了段简单代码试了一下,发现了一下几点:
首先他得到的并不是原来输入的顺序,而是进行散列后的值;
还有使用枚举数的时候不再是Ienumerator,而是IdictionaryEnumerator;
最后,在使用枚举数读取值的时候不再是en.current,而是en.value。
D.Bitarray:一组真假值的集合。遍历的方法与arraylist以及stack相同。
要注意以下几点:
首先bitarray实例化时必须声明其长度;
其次,为其添加元素时用的方法是set;
最后,遍历时使用的枚举数仍未Ienumerator。
E.Sortedlist:这种用法和hashtable与arraylist有点像。
首先,添加元素用的是ADD方法,添加的是键值对;
其次,遍历时使用的枚举数和Hahstable比较像。读取的时候既可以根据键值读取,也可以根据索引值读取。
F:queue:这是一种先进先出队列结构。入队方法为enqueque ,出队方法为dequeque。枚举数遍历方式使用Ienumerator,
{
Queue q = new Queue();
for ( int i = 0 ; i < 5 ; i ++ )
q.Enqueue(i.ToString());
enumerator(q );
q.Dequeue();
enumerator(q);
}
protected static void enumerator(Queue q) // 使用枚举数遍历queue集合
{
IEnumerator en = q.GetEnumerator();
while (en.MoveNext()){
Console.Write(en.Current);
Console.WriteLine();}
}