1. 数组概述
数组是包含若干相同类型的变量,这些变量都可以通过索引进行访问。数组中的变量称为数组的元素,数组能够容纳元素的数量称为数组的长度。数组中的每个元素都具有唯一的索引与其对应。
2. 一维数组的声明和使用
2.1 声明:
基本语法:
Type[]arrayName;
示例代码:声明一个int类型的一维数组arr
int[] arr;
arr=new int[5]{1,2,3,4,5}; //初始化其中的元素分别为1,2,3,4,5
2.2 使用:
示例代码:
static void Main(string[] args)
{
int[] arr ={1,2,3,4,5}; //定义一个一维数组,并为其赋值
foreach (int n in arr) //使用foreach语句循环遍历一维数组中的元素
Console.WriteLine("{0}", n + "");
Console.ReadLine();
}
运行结果:
3. 二维数组的声明和使用
3.1声明:
基本语法:
type[ ,] arrayName;
示例代码:声明一个两行两列的二维数组并初始化
int[ , ]arr=new int[2,2]{{1,2},{3,4}};
3.2使用
3.2.1静态二维数组
示例代码:
static void Main(string[] args)
{
int[,] arr = new int[2, 2] {{1,2},{3,4}}; //自定义一个二维数组
Console.Write("数组的行数为:");
Console.Write(arr.Rank); //获得二维数组的行数
Console.Write("\n");
Console.Write("数组的列数为:");
Console.Write(arr.GetUpperBound(arr.Rank-1)+1); //获得数组的列数
Console.Write("\n");
for (int i = 0; i < arr.Rank;i++) //循环输出二维数组中的每个元素
{
string str = "";
for (int j = 0; j <arr.GetUpperBound(arr.Rank - 1) + 1; j++)
{
str = str +Convert.ToString(arr[i, j]) + " ";
}
Console.Write(str);
Console.Write("\n");
}
Console.ReadLine();
}
运行结果:
3.2.2动态二维数组
示例代码:
static void Main(string[] args)
{
Console.Write("请输入动态数组的行数:");
int row = Convert.ToInt32(Console.ReadLine());//定义动态数组的行数
Console.Write("请输入动态数组的列数:");
int col = Convert.ToInt32(Console.ReadLine());//定义动态数组的列数
int[,] arr = new int[row,col]; //根据定义的行数和列数定义动态数组
Console.WriteLine("结果:");
for (int i = 0; i< row; i++)
{
for (int j = 0; j < col; j++)
{
Console.Write(i+j .ToString()+" "); //输出动态数组中的元素
}
Console.WriteLine();
Console.ReadLine();
}
}
运行结果:
4. 数组的基本操作
4.1如何遍历数组
使用foreach语句可以实现数组的遍历功能。在2.1的示例代码中已有涉及,此处就不举例了。
4.2 添加/删除数组元素
可以利用数组的索引号对数组元素进行删除,但是这种方法不能够真正地实现对数组元素的删除,一般不推荐使用。等以后学习了ArrayList类后,可以使用它来实现数组的删除。
4.3 对数组进行排序(以后会是单独的一章,详细解释)
4.3.1 遍历排序法:如冒泡法、直接插入法和选择排序法等。
4.3.2 Array类的Sort和Reverse排序法
4.4数组的合并和拆分
5. ArrayList类
ArrayList类相当于一种高级的动态数组,它是Array类的升级版。位于System.Collections命名空间下,可以动态添加和删除元素。
5.1 声明
方式一:ArrayList List= new ArrayList();
示例代码:
ArrayList list=new ArrayList(); //声明一个ArrayList对象
for (int i=0;i <10;i ++) //给其添加10个int类型的元素值
list .Add (i);
方式二:ArrayList List=new ArrayList(arrayName);
示例代码:
int[] arr = new int[] {1,2,3,4,5,6,7,8,9 }; //声明一维数组
ArrayList list=new ArrayList (arr ); //将一维数组中元素添加到已声明的ArrayList对象中
方式三:ArrayList List=new ArrayList(n);
示例代码:
ArrayList list=new ArrayList (10); //声明一个ArrayList对象
for (int i=0;i <List.Count;i++) //给其添加10个int类型的元素值
list .Add (i);
5.2使用
5.2.1ArrayList元素的添加
可以使用ArrayList类提供的Add方法和Insert方法。
示例代码:
//使用Add方法(将对象添加到ArrayList集合的结尾处)
int[] arr = new int[] { 1,2, 3, 4, 5, 6 };
ArrayList list = newArrayList(arr); //使用声明的一维数组实例化一个ArrayList对象
list.Add(7); //为ArrayList对象添加对象
//使用Insert方法(将对象添加到ArrayList集合的指定索引处)
int[] arr2 = new int[] { 1,2, 3, 4, 5, 6 };
ArrayList list2 = newArrayList(arr2); //使用声明的一维数组实例化一个ArrayList对象
list.Insert(3,7); //在ArrayList集合的指定位置添加一个元素
5.2.2 ArrayList元素的删除
可以使用ArrayList类提供的Clear方法、Remove方法、RemoveAt方法和RemoveRange方法。这几种方法的使用和5.2.1中元素的添加方法类似,只需要更换方法名即可,所以不再举例了。
其中,Clear方法用来从ArrayList中移除所有元素;Remove方法从中移除特定对象的第一个匹配项;RemoveAt方法用来移除指定索引处的元素;RemoveRangge方法用来移除一定范围的元素。大家可视情况而选择使用。
5.2.3 ArrayList元素的查找
元素的查找也是类似,可使用Contains方法、Indexof方法和LastIndexOf方法。
6. Hashtable(哈希表)
哈希表表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。
6.1 Hashtable元素的添加
Hashtable hashtable=newHashtable(); hashtable.Add(“Sex”,”男”);6.2 Hashtable元素的删除
hashtable.Remove(“Sex”);
6.3 Hashtable元素的遍历
与数组的遍历相似,都可以使用foreach语句,但是由于Hashtable元素是一个键/值对,因此需要使用DictionaryEntry类型来进行遍历。
示例代码:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("StuID","110"); //向Hashtable对象添加对象
hashtable.Add("name","Tom");
hashtable.Add("Sex", "男");
Console.WriteLine("\t键\t值");
foreach (DictionaryEntry dicEntry inhashtable) //遍历Hashtable中的元素
{
Console.WriteLine("\t"+dicEntry.Key +"\t"+dicEntry .Value );
}
Console.WriteLine();
Console.ReadLine();
}
运行结果: