无法将类型'System.Array'隐式转换为'decimal []'。存在显式转换(您是否错过了演员?)

时间:2016-07-20 08:42:15

标签: c#

如何用C#代码转换它?

//Cannot implicitly convert type 'System.Array' to 'decimal[]'.
//An explicit conversion exists
Array[] s = new Array[10];
for (int i = 0; i < 9; i++)
{
    s[i] = average; //average is decimal [] 
}
for (int i = 0; i < 2; i++)
{
    Mean = s[i]; //mean is decimal[] & s[i] system array 
}

2 个答案:

答案 0 :(得分:2)

看起来您正在尝试设置锯齿状阵列。在这种情况下,我怀疑最好的选择是将s键入decimal[][]

decimal[][] s = new decimal[10][];

然后一切都正常工作

你也可以施放

Mean = (decimal[])s[i];

但这不太令人满意,IMO。

答案 1 :(得分:2)

我不知道您要对此代码执行什么操作,因为它不会计算平均值或平均值,

但是您使用的是无类型数组类,这主要用作公共基类,以便所有数组都表现出相同的行为,当您不知道什么时,它也可用于某些罕见的情况输入数组是

定义数组的正确方法是TypeName [ArraySize],所以如果你想要一个大小为10的十进制数组,那么正确的用法是decimal[10]

这是你的工作&#34;代码:

decimal demo_average = 0;
decimal demo_mean = 0;

decimal[] s = new decimal[10];
for (int i = 0; i < 9; i++)
{
    s[i] = demo_average;
}

for (int i = 0; i < 2; i++)
{
    demo_mean = s[i]; 
}