C# 数组
首先数组是一个有序的元素序列。是可以储存一组相同类型的元素,这个数组可以是值类型,也可以是引用类型。
数组创建
int[] array;
这样就定义了一个int
型的数组变量,但并没有分配内存,所以还需要对其进行分配内存,否则会在编译时报错。
在分配内存是,使用 new
关键字,然后跟上类型和数量。在使用数组的时候,必须要清楚数组的数量。
int[] array = new int[5];
这样,array指向了堆中新建的5个内存,如下图
分配内存后,编译器默认情况下会把每个数组初始化为0,当然也可以直接复制
int[] array = new int[] { 1, 2, 3, 4, 5};
int[] array = { 1, 2, 3, 4, 5};
这样都是可以的。
除此之外,我们还可以创建自定义类型的数组。
public class ConstomTest
{
public int value;
public void Print()
{
Console.WriteLine("value = {0}", value);
}
}
class Program
{
static void Main(string[] args)
{
ConstomTest[] test = new ConstomTest[2];
Console.ReadKey();
}
}
与预定义类型是一致的。
数组遍历
数组的遍历可以直接通过 Length
来获取数组的长度,再用for
语句依次输出,注:数组的下标是从0开始的
int[] array = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < array.Length; i++)
Console.Write("{0} ", array[i]);
输出结果:
1 2 3 4 5
当然我们也可以用 foreach
关键子来遍历。
int[] array = new int[] { 1, 2, 3, 4, 5 };
foreach (int a in array)
Console.Write("{0} ", a);
输出的结果:
1 2 3 4 5
但是使用foreach
的话要注意:在使用foreach
期间不可以堆数据进行修改。因为它是foreach
的迭代变量。 但可以对该变量中所引用数据进行改变。