`
leonardleonard
  • 浏览: 796037 次
社区版块
存档分类
最新评论

C#的6种常用集合类大比拼【月儿原创】

阅读更多

C#的6种常用集合类大比拼

作者:清清月儿

主页:http://blog.csdn.net/21aspnet/           时间:2007.6.27 

说明:MSDN没有说出几种集合类其间的区别,当然欲知更多细节可参考MSDN。

一.先来说说数组不足(也可以说集合与数组的区别):

1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的

2.数组要声明元素的类型,集合类的元素类型却是object.

3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。

4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问!

 

二.下面讲述6种常用集合

1.ArrayList类

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
...{
    
class Program
    
...{
        
static void Main(string[] args)
        
...{
            ArrayList al 
= new ArrayList();
            al.Add(
100);//单个添加
            foreach (int number in new int[6...937248 })
            
...{
                al.Add(number);
//集体添加方法一//清清月儿 http://blog.csdn.net/21aspnet/
            }

            
int[] number2 = new int[2...11,12 };
            al.AddRange(number2);
//集体添加方法二
            al.Remove(3);//移除值为3的
            al.RemoveAt(3);//移除第3个
            ArrayList al2 = new ArrayList(al.GetRange(13));//新ArrayList只取旧ArrayList一部份


            Console.WriteLine(
"遍历方法一:");
            
foreach (int i in al)//不要强制转换
            ...{
                Console.WriteLine(i);
//遍历方法一
            }


            Console.WriteLine(
"遍历方法二:");
            
for (int i = 0; i != al2.Count; i++)//数组是length
            ...{
                
int number = (int)al2[i];//一定要强制转换
                Console.WriteLine(number);//遍历方法二

            }

        }

    }

}

 

2.Stack类

栈,后进先出。push方法入栈,pop方法出栈。

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
...{
    
class Program
    
...{
        
static void Main(string[] args)
        
...{
            Stack sk 
= new Stack();
            Stack sk2 
= new Stack();
            
foreach (int i in new int[4...1234 })
            
...{
                sk.Push(i);
//填充
                sk2.Push(i);
            }

            
            
foreach (int i in sk)
            
...{
                Console.WriteLine(i);
//遍历
            }


            sk.Pop();
            Console.WriteLine(
"Pop");
            
foreach (int i in sk)
            
...{
                Console.WriteLine(i);
            }

            
            sk2.Peek();
//弹出最后一项不删除//清清月儿 http://blog.csdn.net/21aspnet/
            Console.WriteLine("Peek");
            
foreach (int i in sk2)
            
...{
                Console.WriteLine(i);
            }


            
while (sk2.Count != 0)
            
...{
                
int i = (int)sk2.Pop();//清空
                sk2.Pop();//清空
            }

            Console.WriteLine(
"清空");
            
foreach (int i in sk2)
            
...{
                Console.WriteLine(i);
            }

        }

    }

}

 

3.Queue类

队列,先进先出。enqueue方法入队列,dequeue方法出队列。

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
...{
    
class Program
    
...{
        
static void Main(string[] args)
        
...{
            Queue qu 
= new Queue();
            Queue qu2 
= new Queue();
            
foreach (int i in new int[4...1234 })
            
...{
                qu.Enqueue(i);
//填充
                qu2.Enqueue(i);
            }

            
            
foreach (int i in qu)
            
...{
                Console.WriteLine(i);
//遍历
            }


            qu.Dequeue();
            Console.WriteLine(
"Dequeue");
            
foreach (int i in qu)
            
...{
                Console.WriteLine(i);
            }

            
            qu2.Peek();
//弹出最后一项不删除
            Console.WriteLine("Peek");
            
foreach (int i in&n
分享到:
评论

相关推荐

    C#的6种常用集合类大比拼

    本文将深入探讨C#中六种常用的集合类,包括它们的特点、用法以及与其他数据结构如数组的区别,旨在帮助程序员更好地理解并选择合适的集合类以满足不同的编程需求。 ### 数组的局限性 在讨论集合类之前,有必要先...

    CSharp的6种常用集合类

    CSharp的6种常用集合类,并用简单代码实现。

    C#常用工具类代码集合Util第二版本(自己工作总结)

    C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...

    C# 开发中常用的类大全,C#类

    最全的C#常用开发类,cs文件,使用起来非常方便。大约有100多个常用类,

    C#常用工具类代码集合Util(自己工作总结)

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。"MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的...

    C#实体类和实体类集合的自动排序

    在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括Windows桌面应用、Web应用和移动应用等。在这些应用中,数据通常需要以某种形式存储和展示,这时实体类(Entity Class)和实体类集合(Entity ...

    C#最常用的100多个类库集合分享

    本资源集合分享了C#中最常用的一百多个类库,涵盖了多个关键领域。 1. 文件操作:C#中的System.IO命名空间提供了大量用于文件操作的类,如FileStream、StreamReader和StreamWriter,可进行文件的读写、追加、复制和...

    C# 的几个常用类Common

    6. **System.Linq**: 林纳斯查询(Language Integrated Query,LINQ)是C#中强大的数据查询工具,它使得在各种数据源上进行查询变得简单,如数组、集合、数据库等。`Enumerable`类提供了诸如`Select`、`Where`和`...

    C#工具类库类库 包含所有的常用工具类

    标题中的"C#工具类库类库 包含所有的常用工具类"暗示了这是一个集合,包含了多种实用工具类,能够极大地提升开发效率。这些工具类涵盖了从文件操作到网络通信的多个领域。 首先,FTP操作类是用于与FTP服务器进行...

    C#常用的42个类

    在C#编程语言中,掌握常用的类...以上这些类是C#编程中非常基础且常用的,熟练掌握它们将极大地提高开发效率和代码质量。在实际项目中,还会根据需求涉及到更多特定领域的类,但以上这些已经涵盖了大部分日常开发工作。

    C# 常用集合总结

    本文档对C#的几种常见的集合(BitArray, Dictionary, Hashtable, NameValueCollection, Queue, Stack)的用法作了归纳,每种集合都附有完整的测试代码。(另外一种常见集合ArrayList收录在另外一份文档:<C# List使用...

    c#常用类库源码全集 c#工具函数集合

    超强c#常用类库源码 各种工具函数集合 可直接调用开发软件网站 资源包括: 1、sql日常操作类库 access操作类库 传递sql语句即可调用 2、文件处理函数 增删减移动文件修改 3、Ftp常用函数 4、网络操作函数 html...

    C#中的泛型集合

    在C#中,System.Collections和System.Collections.Generic命名空间提供了各种集合类,如ArrayList、LinkedList、Queue和Stack等。然而,这些非泛型集合存在一些局限性,比如类型转换的开销和安全性问题。 泛型集合...

    类,集合通讯录

    winfrom窗体通讯录 ,用到类对象 属性 集合

    C# winform web开发过程中常用Icon图标集合的经典素材。

    本资源“C# WinForm Web开发过程中常用Icon图标集合”汇聚了网络上的优质图标素材,经过筛选,去除了不实用的部分,留下的都是精华,对于C# Windows Forms (WinForm) 和Web应用程序的开发者来说,是一个非常有价值的...

    c#函数库(比较常用)

    C#是一种面向对象的编程语言,由微软公司开发,用于构建Windows、Web和移动应用程序。在C#中,函数库是一系列预定义的函数集合,它们提供了标准操作,以简化编程任务。本C#函数库包含了常用且实用的函数,非常适合...

    C#常用类库合集 100 完整版

    C#常用类库合集,小编整理的,里面都是源码,有excel导入导出的,Json类库,条码类库,全都是精品,绝对是你想要的,大家快来下载。类库会在编译之后生成一个dll文件,然后其他的项目可以引用这个dll。这个大家都是...

    C#常用代码(个人收集)

    6. **泛型**:泛型提供了一种方式来编写可重用的代码,可以处理多种数据类型,如泛型类、泛型方法和泛型接口。 7. **LINQ(Language Integrated Query)**:C#的查询表达式(LINQ)允许开发者以更自然的语法进行...

    C#源码大集合

    《C#源码大集合》是一个综合性的资源包,针对C#编程爱好者和开发者提供了丰富的学习和实践素材。这个集合涵盖了多个方面的C#编程知识,包括但不限于控件操作、文件管理、程序设置以及系统维护等多个核心领域。接下来...

Global site tag (gtag.js) - Google Analytics