C# 中如何动态确定二维数组的大小?(不使用List)

xzx4941030 2018-04-04 01:44:44
一个m*n的二维数组。m,n事先不知道大小,一旦通过计算确定了大小之后,m,n大小就固定了,后期不需要变化了。
在C++里面,我们可以使用new来动态分配内容。

在C#中,如何动态分配?

像下面这样的代码应该是不行的吧?因为m,n在编译阶段是没用数值的。

获取用户输入的m
获取用户输入的n
double a[,]=new double[m][n]

请不要推荐使用List<double[]>,我想以更自然的方式来使用数组。
...全文
1255 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
资深码农 2018-04-21
  • 打赏
  • 举报
回复
引用 17 楼 wddw1986 的回复:
[quote=引用 15 楼 weixin_41913666 的回复:] m=m!=""?m:1; n=n!=""?n:1; double a[,]=new double[m][n]
你要是基础语法都不会还是别来回答问题,很容易误导别人。[/quote] 这位大牛,我的代码写的是思想,谢谢指教了, public double[,] setArray(string i, string j) { //可以先对i和j做数字判断。 return new double[int.Parse((i != "" ? i : "1")), int.Parse((j != "" ? j : "1"))]; } 那您看,我喂喂您怎么样,还教导别人,您自己真的不需要学习学习么。你的代码本身就没有达到楼主的需求。那您在在指导下我这段代码吧
cheng2005 2018-04-09
  • 打赏
  • 举报
回复
引用 8 楼 xzx4941030 的回复:
[quote=引用 1 楼 wddw1986 的回复:]
            int m = 5;
            int n = 4;
            double[,] a = new double[m,n];
这些都是基础的语法,随便找本书,或者上网搜一下,也就1分钟就学会了。 为什么不能真正的放下你的架子去真正学习一门语言?
谢谢回复,M,N事先是不知道大小的;[/quote]
        public double[,] GetArray(int row,int column)
        {
            return new double[row, column];
        }
如果你连怎么获取用户输入都不会弄,我强烈建议你从头好好学学。 只糊弄着写程序,对用户不负责,更是对自己不负责。
cheng2005 2018-04-09
  • 打赏
  • 举报
回复
引用 15 楼 weixin_41913666 的回复:
m=m!=""?m:1; n=n!=""?n:1; double a[,]=new double[m][n]
你要是基础语法都不会还是别来回答问题,很容易误导别人。
资深码农 2018-04-06
  • 打赏
  • 举报
回复
楼主对不起忘记说三元运算了
m=m!=""?m:1;这样初始化就没问题了
橘子皮... 2018-04-06
  • 打赏
  • 举报
回复
论坛问别人问题也是一种获取答案的途径,为什么一定要百度?多和人沟通不好么
资深码农 2018-04-06
  • 打赏
  • 举报
回复
判断用户是否输入了m,n;都不为空才初始化数组
资深码农 2018-04-06
  • 打赏
  • 举报
回复
楼主请把此楼与11楼删除,谢了
资深码农 2018-04-06
  • 打赏
  • 举报
回复
10楼以上的以后希望慎言…你们这样不好,知之为知之,不知为不知,会就是会,不会就是不会,没什么可丢人的,以后不要这样所问非所答了,哎
大华子 2018-04-06
  • 打赏
  • 举报
回复
引用 3 楼 hanjun0612 的回复:
而按照你的M,N不确定,那么就没办法使用数组 因为本来这就违背了数组的定义,数组就是固定长度的。 所以你需要的才是最不自然的方式。而list才最自然
c++是可以在运行时根据实际大小来动态分配的,我就是不知道C#怎么弄;
大华子 2018-04-06
  • 打赏
  • 举报
回复
引用 1 楼 wddw1986 的回复:
            int m = 5;
            int n = 4;
            double[,] a = new double[m,n];
这些都是基础的语法,随便找本书,或者上网搜一下,也就1分钟就学会了。 为什么不能真正的放下你的架子去真正学习一门语言?
谢谢回复,M,N事先是不知道大小的;
资深码农 2018-04-06
  • 打赏
  • 举报
回复
m=m!=""?m:1; n=n!=""?n:1; double a[,]=new double[m][n]
bsdekj2 2018-04-04
  • 打赏
  • 举报
回复
[n][m] [m,n] 注意区别。
xuzuning 2018-04-04
  • 打赏
  • 举报
回复
C# 和在C++里面一样,可以使用new来动态分配内容
  • 打赏
  • 举报
回复
另外不管是交错数组还是二维数组,m和n本来就是运行时的变量,你可以学习 c# 语法。
  • 打赏
  • 举报
回复
交错数组和二维数组是不同的概念。 lz 你搞错了这两个概念,所以写出来的代码在赋值号左右两边类型不符。
正怒月神 2018-04-04
  • 打赏
  • 举报
回复
而按照你的M,N不确定,那么就没办法使用数组 因为本来这就违背了数组的定义,数组就是固定长度的。 所以你需要的才是最不自然的方式。而list才最自然
正怒月神 2018-04-04
  • 打赏
  • 举报
回复
List<double[]> 就是最自然的方式。 因为list内部维护的数组,就是数据长度达到后,数组长度翻倍增长。他就是个数组。
cheng2005 2018-04-04
  • 打赏
  • 举报
回复
            int m = 5;
            int n = 4;
            double[,] a = new double[m,n];
这些都是基础的语法,随便找本书,或者上网搜一下,也就1分钟就学会了。 为什么不能真正的放下你的架子去真正学习一门语言?

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧