c# 动态数组 ArrayList
http://anony3721.blog.163.com/blog/static/5119742010728102932277/
1、什么是ArrayList
ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:
动态的增加和减少元素;实现了ICollection和IList接口;灵活的设置数组的大小。
2、如何使用ArrayList
最简单的例子:
ArrayList List = new ArrayList();
for( int i=0;i<10;i++ ) //给数组增加10个Int元素
for( int i=0;i<10;i++ ) //给数组增加10个Int元素
List.Add(i);
//..程序做一些处理
List.RemoveAt(5);//将第6个元素移除
for( int i=0;i<3;i++ ) //再增加3个元素
List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组
//..程序做一些处理
List.RemoveAt(5);//将第6个元素移除
for( int i=0;i<3;i++ ) //再增加3个元素
List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组
这是一个简单的例子,虽然没有包含ArrayList所有的方法,但是可以反映出ArrayList最常用的用法。
ArrayList 元素类型
和数组不同,ArrayList 的各个元素的类型可以不同。
声明对象
//声明 ArrayList 有三种重载方法,较常用的有两种
ArrayList al = new ArrayList();
ArrayList al = new ArrayList(3);
ArrayList al = new ArrayList();
ArrayList al = new ArrayList(3);
上例中,参数值 3 表示容量,即可以容纳多少个元素。
ArrayList对象就是一个可变长的数组,可以根据需要添加元素.使用ArrayList的方法可以向数组列表中添加元素,或取出,修改某个元素.
如:
ArrayList MyArrayList = new ArrayList();
MyArrayList.add("Caoxi");
MyArrayList.Clear();
ArrayList中取出的对象都是object类型,使用前要将其转换成合适的类型.
ArrayList theArrayList = new ArrayList();
theArrayList.Add("1");
theArrayList.Add("2");
string s = (string)theArrayList[0];
string s1 = (string)theArrayList[1];
注意Contains()方法 如果ArrayList中包含参数提供的对象,则返回true,否则返回false
if (theArrayList.Contains("1")) //判断字符"1"是否存在于ArrayList
---------------------------------------------------------------------------------------------
在C#当中,集合有我们常用C# Arraylist(动态数组),Hashtable(关健字和值的查找表)和不常用的BitArray(位数组),Queue(先进先出的集合),SortedList(有序例表),Stack(后进先出的栈)等等。
其实集合就是将一组有序的数据组合在一起并能对其进行有效的处理。在这里我们主要介绍常用C# Arraylist与Hashtable。
Arraylist
类似于一维动态数组,在Arraylist中可以存放任何对像,Arraylist的常用方法有以下三种:增加元素Add(),插入元素Insert(),删除元素Remove()。
- using System.Collections;
- public static void Main()
- {
- ArrayList arr = new ArrayList();
- arr.Add(10);//为集合添加一个值
- arr.Add(10);//添加第二个值
- arr.Insert(0, 8);//在第0索引位置插入一个值8
- Console.WriteLine(arr.IndexOf(10, 2));
- //搜索指从索引从0到2的值为10的数量.
- foreach (int a in arr)//遍历集合arr
- {
- Console.WriteLine(a);
- }
- }
Hashtable
是用来存入键/值对的集合,如果有需要同时存放键并对应有值的时候我们可以用Hashtable 。