C#.net技术内幕04-集合

简介:
+关注继续查看
  1.  锯齿数组:锯齿数组就是数组的数组。例如:

 

Int[] a=new int[][]{
         New 
int[]{111};
          New 
int[]{2312};
}

    2.Out与ref:将数组作为参数传递时,在调用函数之前不需要初始化out参数,但调用的函数必须在返回前分配数组类型。而且,ref参数必须在函数调用之前分配。

  

    3. 枚举数(enumerator):

    它是一个对象,可以通过它对集合项进行便利。枚举数只能读取但不能改变集合的至。在实例化后,会被放在集合第一个元素之前。如果不调用movenexe就直接使用current访问的话会出错。当枚举数到达集合的末尾时,会停留在集合的最后一个元素后面,并返回假。如果此时继续使用current也会出错。

    主要方法属性:

  • current返回集合中的当前对象;
  • Movenext将枚举项后移一项;
  • Reset将枚举数移到初始位置。

    4.几种常用的集合:

   AArraylisy:使用add,remove等对元素进行操作。

  

View Code

 

   BStack:是一种后进先出结构。有push。Pop。peek三种方法。

 

View Code

 

CHashtable:这是一种键值对集合。该集合与前面的两种集合不太一样,我写了段简单代码试了一下,发现了一下几点:

首先他得到的并不是原来输入的顺序,而是进行散列后的值;

还有使用枚举数的时候不再是Ienumerator,而是IdictionaryEnumerator;

最后,在使用枚举数读取值的时候不再是en.current,而是en.value。

 

View Code

 

DBitarray:一组真假值的集合。遍历的方法与arraylist以及stack相同。

要注意以下几点:

首先bitarray实例化时必须声明其长度;

其次,为其添加元素时用的方法是set;

最后,遍历时使用的枚举数仍未Ienumerator。

 

View Code

     ESortedlist:这种用法和hashtable与arraylist有点像。

首先,添加元素用的是ADD方法,添加的是键值对;

其次,遍历时使用的枚举数和Hahstable比较像。读取的时候既可以根据键值读取,也可以根据索引值读取。

 

View Code

 

   F:queue这是一种先进先出队列结构。入队方法为enqueque ,出队方法为dequeque。枚举数遍历方式使用Ienumerator,

 

ExpandedBlockStart.gif
复制代码
protected static void queue()

        {
            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();}
        }
    
复制代码






相关文章
|
8月前
|
XML JSON 缓存
推荐一个.Net常用代码集合,助你高效完成业务
这个代码集合,都是一些常用的功能性代码,每个类都是独立、没有相互依赖,可以单独使用。
140 0
推荐一个.Net常用代码集合,助你高效完成业务
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
153 0
|
测试技术
.net持续集成测试篇之Nunit文件断言、字符串断言及集合断言
.net持续集成测试篇之Nunit文件断言、字符串断言及集合断言使用前面讲过的方法基本上能够完成工作中的大部分任务了,然而有些功能实现起来还是比较麻烦的,比如说字符串相等性比较不区分大小写,字符串是否匹配某一正则规则,集合中的每一个(某一个)元素是否符合特定规则等,Nunit提供了一些特定的方法用来实现一些用普通断言比较难以实现的扩展类型和方法.
731 0
推荐文章
更多