由于数组是由system.Array
类派生出来的引用对象,可以用该类的方法对数组进行操作。
namespace System { // 提供一些方法,用于创建、处理、搜索数组并对数组进行排序,从而充当公共语言运行时中所有数组的基类。 public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
1.遍历数组:遍历数组的意思就是获取数组中的每一个元素,可以使用foreach方法实现该功能:
例如程序:
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
//定义了一个包含12345678的数组;
foreach (var num in arr)
//键盘输入foreach之后按两下Tab键,会出现其使用结构
{
Console.WriteLine("数组中的内容是{0}",num);
//读取每一个数组的内容
}
Console.Read();
}
}
}
还有一个是对数组元素进行添加或这删除,例如程序:
namespace LISTlei
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
//定义了一个包含12345678的数组;
Console.WriteLine("数组中的内容是:");
foreach (var num in arr)
//键盘输入foreach之后按两下Tab键,会出现其使用结构
{
Console.Write(num);
//读取每一个数组的内容
}
Console.Read();
Console.WriteLine("添加后数组中的内容是:");
arr = Add1(arr, 4, 3);
foreach (var item in arr)
{
Console.Write(item);
}
Console.Read();
}
public static int[] Add1(int[] array, int index, int value)
//这里的array为目标操作数组,index为目标索引位置,value为所需要添加的值;
//这里是int【】型,所以返回的也是一个int型数组;
{while (true)
{
if (index > array.Length || index < 0)
{
Console.WriteLine("输入有误");
}
else
{
int[] newarr = new int[array.Length + 1];
//对原数组进行添加操作后,需要显示在一个新的数组内;
for (int i = 0; i < index - 1; i++)
//这里是把前面未添加部分的给新数组,这里-1操作是由于数组是从0开始定义的;
{
newarr[i] = array[i];
}
newarr[index - 1] = value;
//在需要添加的第几个数输入自己想输入的数字;
for (int i = index; i < array.Length + 1; i++)
{
newarr[i] = array[i - 1];
}
return newarr;
break;
}
}
}
}
}
显示结果是:
可以发现是在第四个位置加了一个3.
下面就介绍arraylis类,该类是位于system.collections下面,他与数组的主要区别是数组在定义的时候其内容长度就定义好了,如果定义的长度过小就容易造成数据溢出,若定义的长度过大就容易浪费资源,所以较为死板,而arraylist可以自由的定义数据的长度,添加删减较为方便。数组的读取和修改只能是一个元素一个元素的进行。
namespace System.Collections
{
// 使用大小会根据需要动态增加的数组来实现 System.Collections.IList 接口。
public class ArrayList : IList, ICollection, IEnumerable, ICloneable
例如为arraylist添加元素的程序;
class Program
{
static void Main(string[] args)
{
ArrayList arlist = new ArrayList();
for (int i = 0; i < 10; i++)
{
arlist.Add(i);
//添加10个数
Console.Write(arlist[i]);
}
Console.Read();
}
}
由程序可以看出,在定义arraylist时,不用定义其容量多少,可以在后期自己添加所需要添加的数据。
同时arraylist可以调用数组中的内容,就是数组的转化,例如程序:
namespace arrlist
{
class Program
{
static void Main(string[] args)
{
int[] arr1 = new int[] { 1,2,3,4,3,1};
//定义一个有6个数字的数组;
ArrayList arlist = new ArrayList(arr1);
//定义一个arraylist,并且将数组arr1的值给他
for (int i = 0; i < arr1.Length; i++)
{
Console.Write(arlist[i]);
}
Console.Read();
}
}
}
对于arraylist的用法还有一个是元素的查找。使用contains方法来查看所要差的元素是否在其中;他返回的知识bool类型的。
例如程序:
static void Main(string[] args)
{
int[] arr1 = new int[] { 1,2,3,4,3,1};
ArrayList list1 = new ArrayList(arr1);
Console.WriteLine(list1.Contains(5));
}
结果是: