• C#数组


    什么是数组?
    数组是一种数据结构,包含同一个类型的多个元素。
    数组的声明:
    int[] myIntArray; 
    注:声明数组时,方括号 ([]) 必须跟在类型后面,而不是变量名后面。在 C# 中,将方括号放在变量名后是不合法的语法
    数组的初始化:

    我们知道数组是引用类型,所以需要给他分配堆上的内存。
    1.myIntArray = new int[3];
    2.myIntArray = new int[] { 1, 2, 3 };
    3.int[] myIntArray = { 1, 2, 3 };  //当使用这种方法对数组进行初始化时,只能在声明变量数组时使用,不能在声明数组之后使用。
    数组的访问:
    数组在声明和初始化后,可以使用索引器进行访问,索引器总是以0开头,表示第一个元素。

                int[] myIntArray = { 1, 2, 3 };
                Console.WriteLine("intValue = {0}", myIntArray[0]);
                Console.Read();

    结果为:intValue = 1
    数组的类型:
    1.多维数组:
    一般的数组(也称一维数组)用一个整数来索引,多维数组用两个或多个整数来索引。

    复制代码
     static void Main(string[] args)
            {
                //声明一个二维数组  两行三列
                int[,] myIntArray1;
                myIntArray1 = new int[2, 3];
                myIntArray1[0, 0] = 1;
                myIntArray1[0, 1] = 11;
                myIntArray1[0, 2] = 111;
                myIntArray1[1, 0] = 2;
                myIntArray1[1, 1] = 22;
                myIntArray1[1, 2] = 222;
                Console.WriteLine("{0},{1},{2}", myIntArray1[0, 0], myIntArray1[0, 1], myIntArray1[0, 2]);
                Console.WriteLine("{0},{1},{2}", myIntArray1[1, 0], myIntArray1[1, 1], myIntArray1[1, 2]);
                Console.Read();
            }
    复制代码

    结果为:

    复制代码
     static void Main(string[] args)
            {
                //声明一个二维数组  三行三列
                int[,] myIntArray2;
                myIntArray2 = new int[,] { { 1, 11, 111 }, { 2, 22, 222 }, { 3, 33, 333 }, { 4, 44, 444 } };
    
                Console.WriteLine("{0},{1},{2}", myIntArray2[0, 0], myIntArray2[0, 1], myIntArray2[0, 2]);
                Console.WriteLine("{0},{1},{2}", myIntArray2[1, 0], myIntArray2[1, 1], myIntArray2[1, 2]);
                Console.WriteLine("{0},{1},{2}", myIntArray2[2, 0], myIntArray2[2, 1], myIntArray2[2, 2]);
                Console.WriteLine("{0},{1},{2}", myIntArray2[3, 0], myIntArray2[3, 1], myIntArray2[3, 2]);
                Console.Read();
            }
    复制代码

    结果为:

    复制代码
    static void Main(string[] args)
            {
                //声明一个三维数组  三行三列
                int[, ,] myIntArray3;
                myIntArray3 = new int[,,] { { {1,1}, {11,11}, {111,111} }, 
                                            { {2,2}, {22,22}, {222,222} }, 
                                            { {3,3}, {33,33}, {333,333} }, 
                                            { {4,4}, {44,44}, {444,444} } 
                                          };
    
                Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[0, 0, 0], myIntArray3[0, 0, 1], myIntArray3[0, 1, 0], myIntArray3[0, 1, 1], 
    myIntArray3[0, 2, 0], myIntArray3[0, 2, 1]); Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[1, 0, 0], myIntArray3[1, 0, 1], myIntArray3[1, 1, 0], myIntArray3[1, 1, 1], myIntArray3[1, 2, 0], myIntArray3[1, 2, 1]); Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[2, 0, 0], myIntArray3[2, 0, 1], myIntArray3[2, 1, 0], myIntArray3[2, 1, 1], myIntArray3[2, 2, 0], myIntArray3[2, 2, 1]); Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[3, 0, 0], myIntArray3[3, 0, 1], myIntArray3[3, 1, 0], myIntArray3[3, 1, 1], myIntArray3[3, 2, 0], myIntArray3[3, 2, 1]); Console.Read(); }
    复制代码

    结果为:

    2.锯齿数组:
    一般多维数组的大小是矩形的,而锯齿数组的大小比较灵活,每一行都可以有不同的大小。


    在初始化锯齿数组时,先设置该数组包含的行数。定义各行中元素个数的第二个括号设置为空,因为这类数组的每一行包含不同的元素数。

    复制代码
    static void Main(string[] args)
            {
                //声明一个锯齿数组  三行
                int[][] myIntArray4;
                myIntArray4 = new int[3][];
    
                myIntArray4[0] = new int[] { 1,11,111};
                myIntArray4[1] = new int[2] { 2, 22 };
                myIntArray4[2] = new int[] { 3,33,333,3333};
    
                for (int i = 0; i < myIntArray4.Length; i++)
                {
                    for (int j = 0; j < myIntArray4[i].Length; j++)
                    {
                        Console.WriteLine("{0}",myIntArray4[i][j]);
                    }
                }
                Console.Read();
            }
    复制代码

    结果为:

     

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,并在文章页面明显位置以超链接形式注明出处,否则保留追究法律责任的权利。

    转载:佳园 C#之数组

  • 相关阅读:
    poj 2763 Housewife Wind
    hdu 3966 Aragorn's Story
    poj 1655 Balancing Act 求树的重心
    有上下界的网络流问题
    URAL 1277 Cops and Thieves 最小割 无向图点带权点连通度
    ZOJ 2532 Internship 网络流求关键边
    ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
    SGU 438 The Glorious Karlutka River =) 拆点+动态流+最大流
    怎么样仿写已知网址的网页?
    5-10 公路村村通 (30分)
  • 原文地址:https://www.cnblogs.com/wangfuyou/p/5162348.html
Copyright © 2020-2023  润新知