我正在尝试在csharp中初始化多维数组。我收到错误消息,无法使用集合初始值设定项初始化类型为十进制,因为它未实现systems.collections.IEnumerable。不确定 问题是
Json结构
"StressTestAnalysis": {
"GraphData": [
[ 90000, 1, 1000000],
[ 91000, 1, 2000000],
[ 92000, 1, 3000000],
[ 93000, 1, 4000000],
[ 94000, 1, 5000000],
[ 95000, 1, 6000000],
[ 96000, 1, 7000000],
[ 97000, 1, 8000000],
[ 98000, 1, 9000000],
[ 99000, 0, 10000000],
[ 100000, 0, 11000000],
[ 101000, 0, 12000000],
[ 102000, 0, 13000000],
[ 103000, 0, 14000000],
[ 104000, 0, 15000000],
[ 105000, 0, 16000000],
[ 106000, 0, 17000000],
[ 107000, 0, 18000000],
[ 108000, 0, 19000000],
[ 109000.00000000001, 0, 20000000],
[ 110000.00000000001, 0, 21000000]
],
public class StressTestAnalysis
{
public StressTestResults Results { get; set; }
public decimal[][][] GraphData { get; set; }
}
trigger2Output.StressTestAnalysis.GraphData = new decimal[][][]
{
new decimal { 90000, 1, 1000000}
} ;
答案 0 :(得分:1)
您的课程是错误的,您不需要三维数组。您只需要2个尺寸。此外,集合初始化程序代码还需要进行一些微调:
更新的类:
public class StressTestAnalysis
{
public StressTestResults Results { get; set; }
public decimal[][] GraphData { get; set; }
}
并填写代码:
//Note this is now a 2D array
trigger2Output.StressTestAnalysis.GraphData = new decimal[][]
{
new decimal[] { 90000, 1, 1000000}
// ^^ add this
};
答案 1 :(得分:0)
您似乎正在混淆数组中所需的维数。对于初学者来说,这是
new decimal { 90000, 1, 1000000}
您要声明一个decimal
,但尝试将其初始化为数组。声明为数组:
new decimal[] { 90000, 1, 1000000}
然后,在更高级别上,您将其用作另一个数组中的元素:
new decimal[][][]
{
new decimal[] { 90000, 1, 1000000}
}
但是您的数组包含一个数组,而不是数组的数组。这使其成为二维维度,而不是三个:
new decimal[][]
{
new decimal[] { 90000, 1, 1000000}
}
更新您的课程属性以解决此问题:
public decimal[][] GraphData { get; set; }
现在您可以成功设置二维二维数组。