2016-07-20 1 views
-6

これをC#コードでどのように変換しますか?'System.Array'型を暗黙的に 'decimal []'に変換することはできません。明示的な変換が存在します(キャストがありませんか?)

//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 
} 
+3

このコードをコメントとして投稿するのではなく、質問を編集してください。 –

+3

@deepakdwivedi Callumと私はあなたの投稿をこのコードで編集しました。コメントにコードを投稿しないようにする。 –

+0

@deepakdwivediあなたの質問を見ると、 'share edit close delete flag'という小さなハイパーリンクが表示されます。編集をクリックすると、あなたの質問のテキストを変更できます – MikeT

答えて

2

ギザギザのアレイをセットアップしようとしているようです。その場合、私は最良の選択肢がdecimal[][]としてs入力することである疑いがある:

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

その後、すべてがだけに動作します。

またをキャストすることができます

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

をそれはIMO、あまり満足です。

2

それは平均値を計算するかという意味ではありませんので、私は、あなたがこのコードでやろうとしているのか分からない、

いますが、型なしの配列クラスを使用しているが、これは主としての役割を果たすことを意図していますすべての配列が同じ振る舞いを持つようにするには、配列の型がわからないときにはまれな状況で使用することもできます。

配列を定義する正しい方法はTypeName [ArraySize]です。ifサイズ10の小数点配列を使用したい場合、正しい使用方法はdecimal[10]

ここでは "w orking "コード:

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]; 
} 
+0

彼が間違っていた理由をOPに伝える説明は、これを改善するでしょう – MikeT

+0

?私はOPが何をしようとしているのか分かりませんでした。なぜなら、神秘的な質問が好きだからです。^^ – wischi

+0

彼らは明らかにC#に移動しましたが、配列を使用しようとしていますが、配列であり、正しいルートである型指定された配列ではありません。 – MikeT

関連する問題