本节我们通过数组的常用方法对数组进行操作,同时留几道数组的练习题复习数组。
数组的常用方法
上一节我提到了方法就是 对象所具有的功能,一般是动词,比如抹布清除灰尘,清除就是它的功能,同样数组也有各种功能方法,比如清空、查找、排序等,这三个方 法是本节的学习重点,我会逐一讲解。首先,我们来学习一下
数组的清空Array.Clear(Arrayname, int index, int length);
(操作的数组名,起始索引,清除元素的长度)
看下面的例子
int[] arr = new int[] {1,2,3,4,5};
foreach (int i in arr)
{
Console.WriteLine(i);
}
Array.Clear(arr, 1, 2);
Console.WriteLine (“从1号索引开始清除2个元素后的数组长度"+arr .Length );
foreach (int i in arr)
{
Console.Write(i+" ");
}
提问:同学们想一下结果输出是什么样子的?结果是:从1号索引开始清除2个元 素后的数组长度5
1 0 0 4 5.
而不是1 4 5。原因是什么呢?这是由于数组的特性,数组的大小一旦初始化了就已经确 定了,因此数组元素的清空只是将部分元素设置回了0、False或Null,这和数组元素的类型有关,但是数组的长度依然没有变化。
接下 来我们来学习一下数组的查找
Array.IndexOf(Array,obj);查找arr数组中第一个出现obj元素的索引
Array.LastIndexOf (arr,obj);查arr找数组中最后一个出现obj元素的索引
int[] arr = new int[] { 3, 2, 1, 5,2 ,4};
foreach (int i in arr)
{
Console.WriteLine(i);
}
int z=Array.IndexOf(arr, 2);
int j=Array.LastIndexOf(arr,2);
Console.Write("第一次出现2的索引位:"+z);
Console.WriteLine("最后一次出现2的索引位:" +j);
结果是 第一次出现2的索引位:1 最后一次出现2的索引位:5 结果与事实吻合,c#提供的Array.IndexOf和 Array.LastIndexOf方法还提供了两种方法:
Array.IndexOf(Array,obj,beginIndex);开始查询的索引位。
Array.IndexOf (Array,obj,beginIndex,count);起始查询的索引位,索引往大的方向累加查询数。
Array.LastIndexOf(Array,obj,beginIndex);开始 查询的索引位。
Array.LastIndexOf(Array,obj,beginIndex,count);起始查询的索引位,索引往小的方向累加查询数。
接着上 面的例子
Console.WriteLine("从1号索引位开始的往大的索引数4个元素中第一次出现2的索引位:" + b);
Console.WriteLine("从4号索引位开始的往小的索引数4个元素中最后一次出现2的索引位:" + l);
运行结果为 :