• 一维数组 多维数组 交错数组


     一维数组:

    可以如下例所示声明一个由 5 个整数组成的数组:
    int[] myArray = new int [5];
    此数组包含从 myArray[0] 到 myArray[4] 的元素。new 运算符用于创建数组并将数组元素初始化为它们的默认值。在此例中,所有数组元素都初始化为零。
    可以用相同的方式声明存储字符串元素的数组。例如:
    string[] myStringArray = new string[6];
    数组初始化
    可以在声明数组时将其初始化,在这种情况下不需要级别说明符,因为级别说明符已经由初始化列表中的元素数提供。例如:
    int[] myArray = new int[] {1, 3, 5, 7, 9};
    可以用相同的方式初始化字符串数组。下面声明一个字符串数组,其中每个数组元素用每天的名称初始化:
    string[] weekDays = new string[]
                   {"Sun","Sat","Mon","Tue","Wed","Thu","Fri"};
    如果在声明数组时将其初始化,则可以使用下列快捷方式:
    int[] myArray = {1, 3, 5, 7, 9};
    string[] weekDays = {"Sun","Sat","Mon","Tue","Wed","Thu","Fri"};
    可以声明一个数组变量但不将其初始化,但在将数组分配给此变量时必须使用 new 运算符。例如:
    int[] myArray;
    myArray = new int[] {1, 3, 5, 7, 9};   // OK
    myArray = {1, 3, 5, 7, 9};   // Error
    值类型数组和引用类型数组
    请看下列数组声明:
    MyType[] myArray = new MyType[10];
    该语句的结果取决于 MyType 是值类型还是引用类型。如果是值类型,则该语句将创建一个由 10 个 MyType 类型的实例组成的数组。如果 MyType 是引用类型,则该语句将创建一个由 10 个元素组成的数组,其中每个元素都初始化为空引用。
    有关值类型和引用类型的更多信息,请参见类型。
    将数组作为参数传递
    可以将初始化的数组传递给方法。例如:
    PrintArray(myArray);
    也可以在一个步骤中初始化并传递新数组。例如:
    PrintArray(new int[] {1, 3, 5, 7, 9});
    示例
    在下例中,初始化一个字符串数组并将其作为参数传递给 PrintArray 方法(该数组的元素显示在此方法中):
    // cs_sd_arrays.cs
    using System;
    public class ArrayClass
    {
       static void PrintArray(string[] w)
       {
          for (int i = 0 ; i < w.Length ; i++)
             Console.Write(w[i] + "{0}", i < w.Length - 1 ? " " : "");
          Console.WriteLine();
       }

       public static void Main()
       {
          // Declare and initialize an array:
          string[] WeekDays = new string []
             {"Sun","Sat","Mon","Tue","Wed","Thu","Fri"};

          // Pass the array as a parameter:
          PrintArray(WeekDays);
       }
    }
    输出
    Sun Sat Mon Tue Wed Thu Fri

     

     

    多维数组:

    数组可以具有多个维度。例如,下列声明创建一个四行两列的二维数组:
    int[,] myArray = new int[4,2];
    另外,下列声明创建一个三维(4、2 和 3)数组:
    int[,,] myArray = new int [4,2,3];
    数组初始化
    可以在声明数组时将其初始化,如下例所示:
    int[,] myArray = new  int[,] {{1,2}, {3,4}, {5,6}, {7,8}};
    也可以初始化数组但不指定级别:
    int[,] myArray = {{1,2}, {3,4}, {5,6}, {7,8}};
    如果要声明一个数组变量但不将其初始化,必须使用 new 运算符将数组分配给此变量。例如:
    int[,] myArray;
    myArray = new int[,] {{1,2}, {3,4}, {5,6}, {7,8}};   // OK
    myArray = {{1,2}, {3,4}, {5,6}, {7,8}};   // Error
    也可以给数组元素赋值,例如:
    myArray[2,1] = 25;
    将数组作为参数传递
    可以将初始化的数组传递给方法。例如:
    PrintArray(myArray);
    也可以在一个步骤中初始化并传递新数组。例如:
    PrintArray(new int[,] {{1,2}, {3,4}, {5,6}, {7,8}});
    示例
    在此示例中,初始化一个二维数组并将其传递给 PrintArray 方法(该数组的元素显示在此方法中)。
    // cs_td_arrays.cs
    using System;
    public class ArrayClass
    {
       static void PrintArray(int[,] w)
       {
          // Display the array elements:
          for (int i=0; i < 4; i++)
             for (int j=0; j < 2; j++)
                Console.WriteLine("Element({0},{1})={2}", i, j, w[i,j]);
       }

       public static void Main()
       {
          // Pass the array as a parameter:
          PrintArray(new int[,] {{1,2}, {3,4}, {5,6}, {7,8}});
       }
    }
    输出
    Element(0,0)=1
    Element(0,1)=2
    Element(1,0)=3
    Element(1,1)=4
    Element(2,0)=5
    Element(2,1)=6
    Element(3,0)=7
    Element(3,1)=8

     

    交错数组:

     

    交错数组是元素为数组的数组。交错数组元素的维度和大小可以不同。交错数组有时称为“数组的数组”。本主题包含声明、初始化和访问交错数组的示例。

    下面声明一个由三个元素组成的一维数组,其中每个元素都是一个一维整数数组:

    int[][] myJaggedArray = new int[3][];

    必须初始化 myJaggedArray 的元素后才可以使用它。可以如下例所示初始化元素:

    myJaggedArray[0] = new int[5];
    myJaggedArray[1] = new int[4];
    myJaggedArray[2] = new int[2];

    每个元素都是一个一维整数数组。第一个元素是由 5 个整数组成的数组,第二个是由 4 个整数组成的数组,而第三个是由 2 个整数组成的数组。

    也可以使用初始值设定项用值填充数组元素,在这种情况下不需要数组大小,例如:

    myJaggedArray[0] = new int[] {1,3,5,7,9};
    myJaggedArray[1] = new int[] {0,2,4,6};
    myJaggedArray[2] = new int[] {11,22};

    还可以在声明数组时将其初始化,如:

    int[][] myJaggedArray = new int [][]
    {
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
    };

    可以使用下列快捷方式(注意在元素初始化中不能省略 new 运算符,因为元素没有默认初始化):

    int[][] myJaggedArray = {
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
    };

    可以如下例所示访问个别数组元素:

    // Assign 33 to the second element of the first array:
    myJaggedArray[0][1] = 33;
    // Assign 44 to the second element of the third array:
    myJaggedArray[2][1] = 44;

    可以混合使用交错数组和多维数组。下面声明和初始化一个一维交错数组,该数组包含大小不同的二维数组元素:

    int[][,] myJaggedArray = new int [3][,]
    {
    new int[,] { {1,3}, {5,7} },
    new int[,] { {0,2}, {4,6}, {8,10} },
    new int[,] { {11,22}, {99,88}, {0,9} }
    };

    可以如下例所示访问个别元素,该示例显示第一个数组的元素 [1,0] 的值(值为 5):

    Console.Write("{0}", myJaggedArray[0][1,0]);

    示例

    下例生成数组 myArray,而此数组的元素为数组。每一个数组元素都有不同的大小。

    // cs_array_of_arrays.cs
    using System;
    public class ArrayTest
    {
    public static void Main()
    {
    // Declare the array of two elements:
    int[][] myArray = new int[2][];
    // Initialize the elements:
    myArray[0] = new int[5] {1,3,5,7,9};
    myArray[1] = new int[4] {2,4,6,8};
    // Display the array elements:
    for (int i=0; i < myArray.Length; i++)
    {
    Console.Write("Element({0}): ", i);
    for (int j = 0 ; j < myArray[i].Length ; j++)
    Console.Write("{0}{1}", myArray[i][j],
    j == (myArray[i].Length-1) ? "" : " ");
    Console.WriteLine();
    }
    }
    }

    输出

    Element(0): 1 3 5 7 9
    Element(1): 2 4 6 8


     

  • 相关阅读:
    LeetCode
    在linux服务器下部署python工程(爬虫)
    linux安装python3.6 及 beautifulsoup
    HDU 1561 The more, The Better[树形dp/01背包]
    POJ 3107 Godfather[树的重心]
    POJ 1655 Balancing Act[树的重心/树形dp]
    HDU 2169 Computer[树形dp]
    HDU
    POJ1721--CARDS [置换]
    POJ 1026 Cipher[置换]
  • 原文地址:https://www.cnblogs.com/yitian/p/1383602.html
Copyright © 2020-2023  润新知