目录
一维数组
定义数组语法:
1、分别进行数组的声明和分配内存:
数组元素[] 数组名字;--> int[] arr;
数组名字 = new 数组元素类型[数组元素的个数];--> arr = new int [5];
2、声明并为数组分配内存:
数组元素类型[] 数组名 = new 数组元素类型[数组元素个数]; --> int[] arr = new int[5];
示例:
int[] arr1 = new int[] {1,23,4,5,6};
int[] arr2 = new int[] {1,2,9};
int n= arr1.Length + arr2.Length;
int[] arr3 = new int[n];
数组初始化:
1、int [] arr = new int[]{1,2,5,6,8}; //5个int 类型元素的数组
2、int[] arr = {23,1,53,1}; // 4个int 类型元素的数组
二维数组
定义语法:
声明二维数组:
数组元素类型[,] 数组名字; -->int[,] arr;
二维数组有两种为数组分配内存的方式:
1、直接为每一维数组分配内存 --> int[,] arr = new int[2,4];
2、 分别为每一维分配内存 --> int[][] a = new int[2][]; a[0] = new int[2]; a[1] = new int[3];
初始化两种方式,同一维数组类似:
1、int[,] arr1 = new int[,]{{12,3}.{10,3}};
2、int[,] arr2 = {{3,77},{5,78}};
数组的一些属性和方法
1、Rank属性
可以输出数组的秩(即数组的维数)
2、GetLowerBound()和GetUpperBound()方法
GetLowerBound() 可以得到指定维数的下限;
GetUpperBound()可以得到指定维数的上限;
举例:输出三维数组的1、2的属性和方法
int[, ,] arrr = new int[2, 5, 9];
Console.WriteLine("arrr.Rank--" + arrr.Rank);
Console.WriteLine("Arr.GetLowerBound(0)--" + arrr.GetLowerBound(0));
Console.WriteLine("Arr.GetLowerBound(1)--" + arrr.GetLowerBound(1));
Console.WriteLine("Arr.GetLowerBound(2)--" + arrr.GetLowerBound(2));
Console.WriteLine("arrr.GetUpperBound(0)--" + (arrr.GetUpperBound(0)+1));
Console.WriteLine("arrr.GetUpperBound(1)--" + (arrr.GetUpperBound(1)+1));
Console.WriteLine("arrr.GetUpperBound(2)--" + (arrr.GetUpperBound(2)+1));
运行结果:
3、Array.Sort()和Array.Reverse()方法
示例:
int[] arrx = new int[] { 9, 2, 25, 63, 10, 11, 56, 23 };
Array.Sort(arrx);
Array.Reverse(arrx);
ArrayList
从上面数组的语法来看,定义和使用数组的时候,都需要先声明数组的数据类型和分配空间,并且一个数组只能具有一种数据类型并且需要提前固定数组的元素个数,在对数组进行元素的添加、删除等操作也非常的麻烦,基于此,C#提供了更好的解决方式-->集合,下面介绍C# 集合ArrayList;
ArrayList:
位于System.Collection 命名空间下
ArrayList与数组的对比
(ArrayList经常被看作扩充了功能的数组):
1、数组的容量是固定的,而ArrayList的容量可以自动扩充;
2、ArrayList提供添加、删除、插入某一范围元素的方法,但数组仅能获取或设置一个元素的值;
3、ArrayListu提供将只读和固定大小包装返回到集合的方法,而数组不提供;
4、ArrayList只能是一维形式,而数组可以是多维的;
5、ArrayList可以是多种数据类型,而数组都是提前定好的一种类型的数据类型
ArrayList 定义语法:
1、默认形式,将以默认的大小(16位)来初始化内部的数组:
ArrayList list = new ArrayList();
for(int i=0; i< 10; i++) //给ArrayList对象添加10个int 元素
list.Add(i);
2、用一个ICollection 对象来构造,并将集合的元素添加到ArrayList 中:
int[] arr = new int[]{1,2,3,4,5,6,7,8,9};
ArrayList list = new ArrayList (arr);
3、用指定的大小初始化内部的数组:
ArrayList list = new ArrayList (12);
for(int i=0;i<list.Count;i++)
list.Add(i); //给ArrayList 对象添加12个int元素
ArrayList 常用的几种方法:
1、Add() 方法:
用于将对象添加到ArrayList 集合的末尾处
语法:public virtual int Add(Object value)
value:添加到ArrayList 末尾处的Object类型的值,该值可以为null;
返回值:ArrayList 索引
2、Insert() 方法:
用于将元素插入到ArrayList 集合的指定索引处
语法:public virtual void Insert(int index, Object value)
index: 从零开始的索引,在该位置插入value;
value: 要插入的Object类型的数据,该值可以是null
3、Clear() 方法
用于移除ArrayList 中所有元素;
语法:public virtual void Clear()
4、Remove()方法
用来从ArrayList 中移除特定对象的第一个匹配项,如果不包含指定对象,则ArrayList 保持不变
语法:public virtual void Remove(Object obj)
obj:要从ArrayList 中移除的Object ,该值可以为null;
5、RemoveAt() 方法
用来移除ArrayList 的指定索引处的元素
语法:public virtual void RemoveAt(int index)
6、RemoveRange() 方法
用来从ArrayList 中移除一定范围的元素
语法:public virtual void RemoveRange(int index,int count)
index:要移除的元素的范围起始索引
count:要移除的元素数
7、Contains() 方法
用来确定某元素是否在ArrayList集合中;
语法:public virtual bool Contains(Object item)
item: 要在ArrayList 中查找的Object,该值可以是null;
返回值:如果在ArrayList 中找到item,则为true,否则为false;