首页
最近更新
热门教程
ASP.NET
开发语言
开发环境
AJax教程
控件开发
统计报表
数据库
Web服务
安装部署
HTML教程
Javascript
XML教程
Community Server
NHibernate
书籍推荐
常用工具
实用代码
教程全文搜索
首页
>>
ASP.NET
C#的6种常用集合类大比拼
添加人:
admin
添加时间:2007-08-08 阅读次数:2656
收藏此教程
一.先来说说数组的不足(也可以说集合与数组的区别):
1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的
2.数组要声明元素的类型,集合类的元素类型却是object.
3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。
4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问!
二.下面讲述6种常用集合
1.ArrayList类
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Collections;
5
namespace
ConsoleApplication1
6
{
7
class
Program
8
{
9
static
void
Main(
string
[] args)
10
{
11
ArrayList al
=
new
ArrayList();
12
al.Add(
100
);
//
单个添加
13
foreach
(
int
number
in
new
int
[
6
]
{
9
,
3
,
7
,
2
,
4
,
8
}
)
14
{
15
al.Add(number);
//
集体添加方法一
//
清清月儿
http://blog.csdn.net/21aspnet/
16
}
17
int
[] number2
=
new
int
[
2
]
{
11
,
12
}
;
18
al.AddRange(number2);
//
集体添加方法二
19
al.Remove(
3
);
//
移除值为3的
20
al.RemoveAt(
3
);
//
移除第3个
21
ArrayList al2
=
new
ArrayList(al.GetRange(
1
,
3
));
//
新ArrayList只取旧ArrayList一部份
22
23
24
Console.WriteLine(
"
遍历方法一:
"
);
25
foreach
(
int
i
in
al)
//
不要强制转换
26
{
27
Console.WriteLine(i);
//
遍历方法一
28
}
29
30
Console.WriteLine(
"
遍历方法二:
"
);
31
for
(
int
i
=
0
; i
!=
al2.Count; i
++
)
//
数组是length
32
{
33
int
number
=
(
int
)al2[i];
//
一定要强制转换
34
Console.WriteLine(number);
//
遍历方法二
35
36
}
37
}
38
}
39
}
40
2.Stack类
栈,后进先出。push方法入栈,pop方法出栈。
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Collections;
5
namespace
ConsoleApplication1
6
{
7
class
Program
8
{
9
static
void
Main(
string
[] args)
10
{
11
Stack sk
=
new
Stack();
12
Stack sk2
=
new
Stack();
13
foreach
(
int
i
in
new
int
[
4
]
{
1
,
2
,
3
,
4
}
)
14
{
15
sk.Push(i);
//
填充
16
sk2.Push(i);
17
}
18
19
foreach
(
int
i
in
sk)
20
{
21
Console.WriteLine(i);
//
遍历
22
}
23
24
sk.Pop();
25
Console.WriteLine(
"
Pop
"
);
26
foreach
(
int
i
in
sk)
27
{
28
Console.WriteLine(i);
29
}
30
31
sk2.Peek();
//
弹出最后一项不删除
//
清清月儿
http://blog.csdn.net/21aspnet/
32
Console.WriteLine(
"
Peek
"
);
33
foreach
(
int
i
in
sk2)
34
{
35
Console.WriteLine(i);
36
}
37
38
while
(sk2.Count
!=
0
)
39
{
40
int
i
=
(
int
)sk2.Pop();
//
清空
41
sk2.Pop();
//
清空
42
}
43
Console.WriteLine(
"
清空
"
);
44
foreach
(
int
i
in
sk2)
45
{
46
Console.WriteLine(i);
47
}
48
}
49
}
50
}
51
3.Queue类
队列,先进先出。enqueue方法入队列,dequeue方法出队列。
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Collections;
5
namespace
ConsoleApplication1
6
{
7
class
Program
8
{
9
static
void
Main(
string
[] args)
10
{
11
Queue qu
=
new
Queue();
12
Queue qu2
=
new
Queue();
13
foreach
(
int
i
in
new
int
[
4
]
{
1
,
2
,
3
,
4
}
)
14
{
15
qu.Enqueue(i);
//
填充
16
qu2.Enqueue(i);
17
}
18
19
foreach
(
int
i
in
qu)
20
{
21
Console.WriteLine(i);
//
遍历
22
}
23
24
qu.Dequeue();
25
Console.WriteLine(
"
Dequeue
"
);
26
foreach
(
int
i
in
qu)
27
{
28
Console.WriteLine(i);
29
}
30
31
qu2.Peek();
//
弹出最后一项不删除
32
Console.WriteLine(
"
Peek
"
);
33
foreach
(
int
i
in
qu2)
34
{
35
Console.WriteLine(i);
36
}
37
38
while
(qu2.Count
!=
0
)
39
{
40
int
i
=
(
int
)qu2.Dequeue();
//
清空
41
qu2.Dequeue();
//
清空
42
}
43
Console.WriteLine(
"
清空
"
);
44
foreach
(
int
i
in
qu2)
45
{
46
Console.WriteLine(i);
47
}
48
}
49
}
50
}
51
3.Queue类
队列,先进先出。enqueue方法入队列,dequeue方法出队列。
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Collections;
5
namespace
ConsoleApplication1
6
{
7
class
Program
8
{
9
static
void
Main(
string
[] args)
10
{
11
Queue qu
=
new
Queue();
12
Queue qu2
=
new
Queue();
13
foreach
(
int
i
in
new
int
[
4
]
{
1
,
2
,
3
,
4
}
)
14
{
15
qu.Enqueue(i);
//
填充
16
qu2.Enqueue(i);
17
}
18
19
foreach
(
int
i
in
qu)
20
{
21
Console.WriteLine(i);
//
遍历
22
}
23
24
qu.Dequeue();
25
Console.WriteLine(
"
Dequeue
"
);
26
foreach
(
int
i
in
qu)
27
{
28
Console.WriteLine(i);
29
}
30
31
qu2.Peek();
//
弹出最后一项不删除
32
Console.WriteLine(
"
Peek
"
);
33
foreach
(
int
i
in
qu2)
34
{
35
Console.WriteLine(i);
36
}
37
38
while
(qu2.Count
!=
0
)
39
{
40
int
i
=
(
int
)qu2.Dequeue();
//
清空
41
qu2.Dequeue();
//
清空
42
}
43
Console.WriteLine(
"
清空
"
);
44
foreach
(
int
i
in
qu2)
45
{
46
Console.WriteLine(i);
47
}
48
}
49
}
50
}
51
共
2
页 第
1
页
上一页
1
2
下一页
相关的教程:
CSharp
集合
ArrayList
Queue
Hashtable
SortedList
NameValueCollection
Statck
收藏此教程
Currently.-0.05/5
-5
-4
-3
-2
-1
0
1
2
3
4
5
当前平均分:
0.0
(
0
次打分)
-5
-4
-3
-2
-1
0
1
2
3
4
5
推荐阅读
C#基础概念二十五问
c#开发-基础知识及有用技巧(一)
使用 SQL Server 2005 Compact Edition 和 Visual C#.NET 快速开发应用程序
C#中的匿名方法
C#高级编程(第4版)
C#判断一个日期是一个月里面的第几个星期
最基本的Socket编程 C#版
简单的多人聊天(C#.Socket)
学习C#的25个好习惯
用.NET Compact Framework创建图像按钮
添加评论
评论主题
您的大名
您的评论
验证码
评论列表
ASP.NET论坛
|
网站帮助
|
加入收藏
知识库搜索:
用户信息
欢迎您,游客。
登录
|
注册
为什么要注册?
马上加入GotAspx,建立自己的知识库,与大家分享您的知识库,还可获得丰厚积分奖励!
本类热门
从零开始学ASP.NET(基础篇)
ASP.NET 2.0轻松实现数据库应用开发
ASP.NET 程序中常用的三十三种代码
GridView 72般绝技(一)
对初学者的建议:ASP.NET技术的学习顺序
单点登录在ASP.NET上的简单实现
ASP.NET数据库编程快速入门之技术慨述
ASP.NET 2.0中构造个性化网页
本类最新
介绍SubSonic【转】
ASP.NET访问XML的例子
WEB开发者版本级别
基于.NET2.0的System.Net.Mail发送邮件Demo
Asp.Net 文件操作基类(读取,删除,批量拷贝,批量删除,写入)
c#生成与 追加xml
一个复杂的Eval()绑定
将服务器上的一个.doc文档另存为到客户端