目前我有600個月(1月至12月)的數組,我想創建一個基於初始數組的基於int的新數組。將字符串數組轉換爲int(月份爲數字)
目前我有(忽略任何遺產。作爲即時通訊從不同勢類調用數組)
for (int i = 0; i < Legacy.Month1.Length; i++)
{
int[] MonthNo1 = new int[Legacy.Month1.Length];
switch (Legacy.Month1[i])
{
case "January ":
MonthNo1[i] = 1;
break;
case "February ":
MonthNo1[i] = 2;
break;
case "March ":
MonthNo1[i] = 3;
break;
case "April ":
MonthNo1[i] = 4;
break;
case "May":
MonthNo1[i] = 5;
break;
case "June ":
MonthNo1[i] = 6;
break;
case "July ":
MonthNo1[i] = 7;
break;
case "August ":
MonthNo1[i] = 8;
break;
case "September ":
MonthNo1[i] = 9;
break;
case "October":
MonthNo1[i] = 10;
break;
case "November":
MonthNo1[i] = 11;
break;
case "December ":
MonthNo1[i] = 12;
break;
}
for (int j = 0; i < MonthNo1.Length; j++)
{
Console.WriteLine(MonthNo1[j]);
}
可惜,這似乎並沒有工作。
它成功輸出第一個轉換的數字,但其他599都是空白的。對在過程結束時最重要的是,我得到異常
System.IndexOutOfRangeException
在代碼的底部有關的Console.WriteLine(MonthNo1[j]);
。
任何人都可以看到我在哪裏出錯嗎?
那麼,通過我的邏輯'INT [] MonthNo1 =新INT [Legacy.Month1.Length]'將爲取每一個循環的600個整數新的數組,和'MonthNo1'將在第一個循環結束時只包含1條記錄(因此拋出索引超出範圍),我說得對嗎?嘗試在第一個循環外拉出int [] MonthNo1 = new int [Legacy.Month1.Length]。 –