C# 数组

Posted 时空观察者9号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 数组相关的知识,希望对你有一定的参考价值。

二维数组由若干个一维数组组成。

在C++中,组成二维数组的一维数组长度必须相等。在C#中却可以不相等。

C#二维数组有两种:

1,普通二维数组:

int [,] arr2d = new int[3,2];
int[,] scroes2d2 = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };

2,数组的数组:又称锯齿数组,交错数组

int[][] varr = new int[3][] //不能写成int[][] varr = new int[3][2]
int[][] varr2 = new int[3][] { new int[1] { 1 }, new int[3] { 1, 2, 3 }, new int[2] { 1, 2 } };

测试代码:

class Program
    {
        static void Main(string[] args)
        {
            int[] scroes = new int[5];
            int[,] scroes2d = new int[3,2];
            Console.WriteLine("scroes2d.length:{0}", scroes2d.Length); //6
            for(int i=0; i<3; ++i)
            {
                for(int j=0; j<2; ++j)
                {
                    scroes2d[i, j] = i * 2 + j;
                }
            }

            int[][] varr = new int[3][];
            Console.WriteLine("varr.length:{0}", varr.Length); //3
            for(int i=0; i<varr.Length; ++i)
            {
                varr[i] = new int[i + 1];
                for(int j=0; j<varr[i].Length; ++j)
                {
                    varr[i][j] = j;
                }
            }
            foreach(var arr in varr)
            {
                foreach(var n in arr)
                Console.Write(n);
                Console.WriteLine();
            }
            Console.ReadKey();
        }

    }

 

  • 附:参数数组

有时,当声明一个方法时,您不能确定要传递给函数作为参数的参数数目。C# 参数数组解决了这个问题,参数数组通常用于传递未知数量的参数给函数。

在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以只传递一组数组。params 的使用格式为:

public 返回类型 方法名称( params 类型名称[] 数组名称 )

    class CTest
    {
        public void func(params int[] arr)
        {
            foreach(var n in arr)
            {
                Console.Write(n + ",");
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {

              CTest ot = new CTest();
              ot.func(1,2,3,4,5,6,7,8,9,0);
              ot.func(new int[] { 1, 2, 3, 4 });

     }
        }

 

以上是关于C# 数组的主要内容,如果未能解决你的问题,请参考以下文章

c#代码片段快速构建代码

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?

是否可以动态编译和执行 C# 代码片段?

C#常用代码片段备忘

优化 C# 代码片段、ObservableCollection 和 AddRange

VS2015使用技巧 打开代码片段C#部分