我想创建一个包含N维的数组或列表。
如果没有针对每个可能维度的方法,有没有办法做到这一点:
id <- (map["id"], TransformOf<Int, String>(fromJSON: { Int($0!) }, toJSON: { $0.map { String($0) } }))
不喜欢这个
private ____ createArray(int dimensions, int[] lengths)
{
// declare array with dimensions from variable dimensions
// set length of first dimension to lengths[0]
// set length of second dimension to lengths[1]
// [...]
// return array
}
如果我必须这样做,我需要为每一种可能的方法(让我们忽略这样一个事实,即使用具有N维的数组可能没有意义)维度。
答案 0 :(得分:2)
您可以创建列表列表:
var myList = new List<List<int>>();
for(int i = 0; i < 10; ++i) {
var localList = new List<int>();
myList.Add(localList);
}
答案 1 :(得分:1)
您可以根据需要使用Enumerable.Repeat
创建这样的级别:
int x = 5, y = 6, z = 7;
List<List<List<int>>> list3D = Enumerable.Repeat<List<List<int>>>(
new List<List<int>>(
Enumerable.Repeat<List<int>>(
new List<int>(
Enumerable.Repeat<int>(0, z)
), y)
), x
).ToList();
}
在上面的示例中,您将创建初始值为0且初始大小为5x6x7
的3D列表答案 2 :(得分:0)
有可能。
使尺寸为int数组。从那里,您可以创建条件var声明。唯一的技巧是您需要明确转换为(Array)