2016-04-19 6 views
4

ループを使って両方の配列を一度に歩くことができる簡単な方法はありますか?私は数日間このことに取り組んできました。私はそれを作るよりもはるかに簡単だと感じています。また、statsArray添え字は、以前によって割り当てられているC#配列変数を割り当てる簡単なループ

..等

何かstatsArrayとperDayArray添字が10未満であるが、日によってstatsArray [X]を分割しperdayArrayに割り当てる[X]

テキストボックス。

private double CalculatePerDay(double stats, int days) 
    { 
     return stats/days; 
    } 

     perDayArray[0] = CalculatePerDay(statsArray[0], daysPassed); 
     perDayArray[1] = CalculatePerDay(statsArray[1], daysPassed); 
     perDayArray[2] = CalculatePerDay(statsArray[2], daysPassed); 
     perDayArray[3] = CalculatePerDay(statsArray[3], daysPassed); 
     perDayArray[4] = CalculatePerDay(statsArray[4], daysPassed); 
     perDayArray[5] = CalculatePerDay(statsArray[5], daysPassed); 
     perDayArray[6] = CalculatePerDay(statsArray[6], daysPassed); 
     perDayArray[7] = CalculatePerDay(statsArray[7], daysPassed); 
     perDayArray[8] = CalculatePerDay(statsArray[8], daysPassed); 
     perDayArray[9] = CalculatePerDay(statsArray[9], daysPassed); 
     perDayArray[10] = CalculatePerDay(statsArray[10], daysPassed); 
+0

は、彼らが常に同じ数の項目が含まれているのでしょうか? –

答えて

8
for (int i = 0; i < perDayArray.Length; i++) 
{ 
    perDayArray[i] = CalculatePerDay(statsArray[i], daysPassed); 
} 
+3

なぜperDayArray.GetLength(0)ですか? (またはperDayArray.GetUpperBound(0) - 1) –

+0

はい、それはさらに良いでしょう。ありがとう@AlfieGoodacre –

+0

これは完全に機能しました。私はそれが非常に多くの異なる方法を試してみたように感じる、これはそれらの一つだった。どこかに何かをねじ込んでいるはずです。ありがとうRoma。 – Airvvic

8

perDayArray = statsArray.Select(a => CalculatePerDay(a, daysPassed)).ToArray(); 
+0

@Fabjan - 私は関数として残しておく方が良いと思います。なぜなら、計算が何をしているのかははっきりしています。そして、将来関数を拡張する余地があります。 – Icemanind

+0

あなたの解決策は良いですが、彼はループを求めています) –

2

を次のようにあなたはLINQのを使用することができ、私はあなたがこれをしたいと思う:

for(int i=0; i<= 10; i++) 
{ 
    perDayArray[i] = CalculatePerDay(statsArray[i], daysPassed); 
} 
関連する問題