You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用一行代码将C#中的int[][]转换为int[,]?

一行代码将int[][]转换为int[,]的解决方案

嘿,这个免费午餐的赌约太有劲儿了!虽然C#确实在代码高尔夫里天生吃亏,但能拼到这一步已经很牛了😉

要把交错数组int[][]转成二维数组int[,],而且要一行代码搞定,完全可以做到——前提是你的交错数组是规整的(也就是每个子数组长度相同,旋转立方体的结果肯定满足这个条件)。这里给你两种适配代码高尔夫场景的可行写法:

方法1:嵌套循环一行直写

这是最直接的方式,把交错数组的每个元素逐个复制到二维数组里,字符数控制得很紧凑:

int[,] twoD = new int[j.Length,j[0].Length];for(int i=0;i<j.Length;i++)for(int k=0;k<j[i].Length;k++)twoD[i,k]=j[i][k];

只要把j换成你那行代码生成的交错数组变量名就行,直接嵌到你的原有一行代码里也完全没问题。

方法2:用Array.CreateInstance压缩字符数

如果追求更极致的代码长度,可以借助Array.CreateInstance配合Array.Copy,比嵌套循环能少几个字符:

int[,] twoD=(int[,])Array.CreateInstance(typeof(int),new[]{j.Length,j[0].Length});for(int i=0;i<j.Length;i++)Array.Copy(j[i],0,twoD,i*j[0].Length,j[0].Length);

关键提醒:因为旋转立方体的结果肯定是N×N的方阵,不用考虑子数组长度不一致的情况,这两种写法都能完美运行。赶紧把这行嵌进去,赢下你的免费午餐吧!

内容的提问来源于stack exchange,提问作者Darkestlyrics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:38:55