C# 中的多维数组在维度上参数化

本文关键字:参数 数组 | 更新日期: 2023-09-27 18:32:59

当不同维度的数量和大小先验未知(即作为参数传递)时,是否有可能(以及如何?)参数化多维数组?

如果我们定义

int[] a1dim;
int[,] a2dim;
int[,,] a3dim;

我们已经知道a1dima2dima3dim分别是一维、二维和三维。但是,是否可以在传递参数时指定数组的维度(例如,每个维度的大小列表)?例如,

public object GetMultidim(int[] sizes)
{
    object[/*?*/] andim = new object[/*func(sizes)?*/];
    return andim;
}

C# 中的多维数组在维度上参数化

它已经存在:System.Array.CreateInstance(Type, params int[])

使用 Array.CreateInstance 工厂方法实例化数组,而不是[dim, dim ...]简写。