c# 数组

354 阅读2分钟

数组

数组用于保存一组数据。

数组的特点:

  • 数组长度必须固定。
  • 数组中每个元素的数据类型必须一致。
  • 数组元素通过下标来访问,下标从0开始。

一、一维数组

数组的声明:

int[] arr;

数组的定义:

int[] arr;
arr = new int[5];

数组的声明+定义:

int[] arr = new int[5];

通过下标给数组赋值:

int[] arr = new int[5];
arr[0] = 100;
arr[1] = 80;
arr[2] = 70;
arr[3] = 60;
arr[4] = 50;

数组的初始化:

int[] arr = {85,98,75,84,56,87};
或
int[] arr = new int[]{85,98,75,84,56,87};
或
int[] arr = new int[5]{85,98,75,84,56,87};

通过循环进行数组的输出:

int[] arr = new int[]{85,98,75,84,56,87,75};
for (int i = 0; i < arr.Length; i++) {
	Console.WriteLine(arr[i]);
}

二、二维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组 。

二维数组也可以理解成具有行和列的矩阵。

例如:(以下代码即定义了一个3行4列的矩阵,一共12个子元素)

int[,] arr = new int[3,4];

二维数组的初始化:

int[,] arr = new int[3,4] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };

二维数组的遍历:

for (int i = 0; i < arr.GetLength(0); i++)
{
    for (int j = 0; j < arr.GetLength(1); j++)
    {
    	Console.Write(arr[i,j] + "\t");
    }
    Console.WriteLine("");
}

二维数组也可以先定义第一维,然后为每一行定义第二维的长度:

//一个一个元素进行赋值
//string[][] arr = new string[2][];
//arr[0] = new string[2];
//arr[1] = new string[3];
//arr[0][0] = "Good";
//arr[0][1] = "Luck";
//arr[1][0] = "to";
//arr[1][1] = "you";
//arr[1][2] = "!";

//初始化进行赋值
string[][] arr = new string[2][] {
    new string[2] { "Good", "Luck" },
    new string[3] { "to", "you", "!" }
};
for (int i = 0; i < arr.Length; i++)
{
    for (int j = 0; j < arr[i].Length; j++)
    {
    	Console.Write(arr[i][j] + "\t");
    }
    Console.WriteLine("");
}

三:多维数组

int [ , , ] m;

四:交错数组

交错数组是数组的数组。

交错数组是一维数组。

声明一个带有 int 值的交错数组 scores

int [][] scores;

声明一个数组不会在内存中创建数组。创建上面的数组:

int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{
   scores[i] = new int[4];
}

初始化一个交错数组

int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};

其中,scores 是一个由两个整型数组组成的数组 -- scores[0] 是一个带有 3 个整数的数组,scores[1] 是一个带有 4 个整数的数组。

代码:

using System;

namespace ArrayApplication
{
    class MyArray
    {
        static void Main(string[] args)
        {
            /* 一个由 5 个整型数组组成的交错数组 */
            int[][] a = new int[][]{new int[]{0,0},new int[]{1,2},
            new int[]{2,4},new int[]{ 3, 6 }, new int[]{ 4, 8 } };

            int i, j;

            /* 输出数组中每个元素的值 */
            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 2; j++)
                {
                    Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
                }
            }
           Console.ReadKey();
        }
    }
}