You need to enable JavaScript to run this app. C# 如何创建包含6组、每组4个不同形状子数组的四层锯齿数组
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何创建包含6组、每组4个不同形状子数组的四层锯齿数组

问题根源

原代码的核心问题是遍历组内4个二维数组时,统一硬编码了相同的行、列尺寸,没有按照每组要求的不同形状分别初始化数组,最终导致同一组内4个二维数组结构完全一致,不符合预期的嵌套结构。

调整方案
  • 提前定义每组内4个二维数组对应的固定形状(完全匹配给出的示例结构)
  • 初始化每个二维数组时,按形状映射表取对应行数、列数,替代原代码里统一固定的7行6列配置
  • 保持外层6个元素的总规模不变,每个外层元素下挂载4个不同形状的二维数组
调整后可直接运行的代码
int populationSize = 6;
double[][][][] population = new double[populationSize][][][];
int fillValue = 3;

// 提前定义组内4个二维数组的固定形状:(行数, 列数)
// 完全匹配示例给出的数组尺寸要求
(int Rows, int Cols)[] innerArrayShapes = new (int, int)[]
{
    (7, 6),   // 第1个二维数组:7行6列
    (5, 3),   // 第2个二维数组:5行3列
    (5, 1),   // 第3个二维数组:5行1列
    (1, 5)    // 第4个二维数组:1行5列
};

for (int i = 0; i < populationSize; i++)
{
    // 每个外层元素包含4个二维数组
    population[i] = new double[4][][];
    
    for (int j = 0; j < 4; j++)
    {
        // 按当前j位置取对应的二维数组尺寸
        var (rows, cols) = innerArrayShapes[j];
        population[i][j] = new double[rows][];

        for (int k = 0; k < rows; k++)
        {
            population[i][j][k] = new double[cols];
            for (int m = 0; m < cols; m++)
            {
                population[i][j][k][m] = fillValue;
            }
        }
    }
}
结构校验说明

初始化完成后的结构完全匹配预期要求:

  • 最外层数组长度为6,对应populationSize的配置
  • 每个外层元素下是长度为4的数组,对应每组的4个二维数组
  • 每组内的4个二维数组形状分别为7×6、5×3、5×1、1×5,和示例给出的结构完全一致,无尺寸重复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 02:54:07