关于c#中数组成员变量的实现

Class A{
    public int[,] Datas{get;set;}
    public int[] Row{get;set;}
}

我想实现的是A.Row[i]返回Datas[i,]的数组 Row应该怎么写

阅读 4.3k
1 个回答

一、int[,]声明的是多维数组,而不是元素为数组的数组。
多维数组在访问时必须提供每一个维度的索引值。
例如:

 class Program
    {
        static void Main(string[] args)
        {
            var array = new TestArray {Datas = new int[10, 10]};
            var startValue = 0;
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    array.Datas[i, j] = startValue;
                    startValue++;
                }
            }

            var someValue = array.Datas[1, 8];
            Console.WriteLine(someValue);
        }
    }

    class TestArray
    {
        public int[,] Datas { get; set; }
    }

二、如果要声明包含元素类型为数组的数组,应该使用以下语法:

class TestArray
    {
        public int[][] Datas { get; set; }
    }

这样,只需要直接访问就可以了,不需要Row这个属性。
例如:

class Program
    {
        static void Main(string[] args)
        {
            var array = new TestArray
            {
                Datas = new int[10][]
            };

            for (var i = 0; i < array.Datas.Length; i++)
            {
                array.Datas[i] = new int[50];
            }

            Console.WriteLine(array.Datas[6].Length);
        }
    }

    class TestArray
    {
        public int[][] Datas { get; set; }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏