第6章 数组

105 阅读1分钟

第6章 数组

6.1 数组的声明

// 中括号前定义数组中存的值类型,然后后面跟着变量名
int[] age = { 1,2,3,4};
​
// 声明有长度的数组,且每个元素值为0
int[] age = new int[10];
​
// 获取数组长度的方法Length
Console.WriteLine(age.Length);

6.2 遍历数组

① 使用for循环遍历数组

static void Main(string[] args)
{
    int[] age = { 1,5,7,9,11};
    for (int i = 0; i < age.Length; i++) {
        Console.WriteLine("age[{0}]={1}", i, age[i]);
    }
}

② 使用forearch循环遍历数组

static void Main(string[] args)
{
    int[] age = { 1,5,7,9,11};
    foreach (int temp in age) {
        // 使用临时变量来记录数组中的值
        Console.WriteLine(temp);
    }
}

6.3 声明动态数组

上面声明数组的两种方式都是在初始化的时候直接定好数组的长度的,也就是后面数组的长度是不允许被改变的,如果数组长度需要改变这时候就需要用到动态数组。

// ① 使用动态数组,需要引入Collection类库
using System.Collections;
static void Main(string[] args)
{
    // ② 初始化动态数组,默认每一个new出来的arr都有8个容量,不够会自动扩容
    ArrayList arr =  new ArrayList();
    // ③ 在动态数组中添加元素
    arr.Add(12);
    arr.Add(12);
    arr.Add(12);
    arr.Add(12);
    // ④ 在数组中指定位置添加元素,第一个参数为下标
    arr.Insert(2, 666);
    // ⑤ 删除数组中的元素
    arr.Remove(12);
    foreach (int temp in arr) {
        Console.WriteLine(temp);
    }
}

6.4 冒泡排序

static void Main(string[] args)
{
    // 冒泡排序,从小到大排序
    int temp = 0;//用于交换两数值的临时变量
    int[] arr = { 1, 52, 23, 4, 5, 34, 123423, 112, -1 };//  arr.Length=5 
    //有n个数只要循环n-1次
    for (int i = 0; i < arr.Length - 1; i++)
    {
        //内存循环用于比较大小,从第二个数开始比较
        for (int j = i + 1; j < arr.Length; j++)
        {
            if (arr[i] > arr[j])
            {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    foreach (int j in arr)
    {
        Console.Write("{0}\t", j);
    }
}