ibcadmin 发表于 2014-12-5 09:26:15

[转]C# 数组、锯齿数组(交叉数组)、多维数组(交叉数组)

数组是变量的索引列表,可以在方括号中指定索引来访问数组中的各个成员,其中索引是一个整数,从0开始。

数组必须在访问之前初始化,数组的初始化有两种方式,可以以字面的形式指定数组的内容,也可以使用new关键词显式的初始化数组;
int[] arr = { 1, 2, 3 };

int[] arr1 = new int;

数组类型是从抽象基类型 Array 派生的引用类型。由于此类型实现了 IEnumerable ,因此可以对 C# 中的所有数组使用 foreach 迭代,foreach循环对数组内容进行只读访问,所以不能改变任何元素的值。
int[] arr = { 1, 2, 3 };
       foreach (var item in arr)
       {
         Console.WriteLine(item);
       }
       Array arr2 = Array.CreateInstance(typeof(int), 3);
       arr2.SetValue(1, 0);
       arr2.SetValue(2, 1);
       arr2.SetValue(3, 2);
       foreach (var item1 in arr2)
       {
         Console.WriteLine(item1);
       }


多维数组是使用多个索引访问其元素的数组,下面以二维数组为例:

int[,] arr = { { 1, 2 }, { 4, 5 }, { 7, 8 } };
         int[,] arr1 = new int;
         arr1 = 1;
         arr1 = 2;
         foreach (var item in arr)
         {
             Console.WriteLine(item);
         }

方括号中的第一个数字指定花括号对,第二个数字花括号中的元素



锯齿数组:该数组中的每个元素都是另外一个数组,每行都有不同的元素个数,

int[][] a = new int[];
            a = new int;
            a = new int;

            int[][] b = new int[] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6, 7 } };

            int[][] c = { new int { 1, 2, 3 }, new int { 4, 5, 6, 7 } };

            //锯齿数组的访问
            int[][] a = { new int { 1, 2, 3 }, new int { 4, 5, 6, 7 } };
            foreach (var item in a)
            {
                foreach (var item1 in item)
                {
                  Console.WriteLine(item1);
                }
            }
            Console.WriteLine("----------------------------------");
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = 0; j < a.Length; j++)
                {
                  Console.WriteLine(a);
                }
            }

锯齿数组的初始化:
数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。
交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null。



页: [1]
查看完整版本: [转]C# 数组、锯齿数组(交叉数组)、多维数组(交叉数组)