日期:2014-05-17  浏览次数:20891 次

C#学习(四)—数组

一、数组   

       讲数组前我们先来比较一下C#的数组与VB中的数组


  数组是包含若干相同类型元素的一组变量。这些变量都可以通过索引进行访问。数组中的变量称为数组的元素。数组能够容纳元素的数量称为数组的长度。数组的维数即数组的秩。数组中的每个元素都具有唯一的索引与其相对应。数组的索引从零开始。

       数组类型是从抽象基类型Array派生的引用类型。通过new运算符创建数组并将数组元素初始化为它们的默认值。可以分为一维、多维和交错数组。

1、一维

(1)定义

  type[]arrayName ;//声明名称为x的int型数组

(2)初始化

   数据类型[]数组名= new数据类型[个数];

   int[]x = new int[10];

    初始化并赋值:int[] arr=new int[5] {1,2,3,4,5}; 

 (3)使用

   static void Main(string[] args)        {

            int[] arr = new int[] { 1, 2, 3, 4, 5 };              //声明和实例化数组
            Console.WriteLine("请输入一组数:");
            for (int i = 0; i < 5; i++)
            {
                arr[i] = Convert.ToInt32(Console.ReadLine());    //类型转换
            }
            for (int i = 0; i < 5; i++)                          //数组长度5,0-4
            {
                int temp = arr[i];                               //将0对应的数值赋值给temp
                int j = i;                                         //把i值赋给j
                while ((j > 0) && (arr[j - 1] > temp))           //j>0且arr[j-1]>temp,执行此循环
                {
                    arr[j] = arr[j - 1];                         //把arr[j-1]的值赋值给arr[j],把小的数放在前面的位置
                    --j;                                         //自减,直到与前面几个数比较完
                }
                arr[j] = temp;                                   //将temp的值赋给arr[j]
            }
            Console.WriteLine("排序后结果为:");
            foreach (int n in arr)                                //输出结果
            {
                Console.WriteLine("{0}", n);
            }
        }

2、二维

(1)定义

       type[,]arrayName; 

(2)初始化

          int[,]arr2=new int[3,2]{{3,2},{3,4},{5,6}}; 

        二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。例如对数组a[5][3]:

1.按行分段赋值可写为staticint a[5][3]={ {80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85} };

2.按行连续赋值可写为staticint a[5][3]={ 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 };

(3)使用

static void Main(string[] args)        {
            
            Console.Write("请输入定义数组的行数:");              //输入行数
            int row = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入定义数组的列数:");              //输入列数
            int col = Convert.ToInt32(Console.ReadLine());
            int[,] arr2 = new int[row, col];
            Console.WriteLine("结果:");
            for (int i = 0; i < row; i++)                         //  循环