2014-01-09 156 views
-2

我一直在試圖制定一個銷售計劃,其中客戶將被問及他將購買的物品的數量。例如,如果他輸入"5",則下一個窗口將詢問他5個問題。我的問題是,我需要使用數組,那麼有沒有什麼辦法,我可以改變動態大小的陣列

string[] arrmerch = new string[6]; 

數爲「6」,在新的字符串與用戶輸入的是什麼?這是循環。該項目的選擇是一個問題。

for (int i = 0; i <= arrmerch.Length; i++) 
{ 
    Console.Write("Item choice: "); 
    arrmerch[i] = Console.ReadLine(); 
+3

包含你問的用戶人數爲一個變量替換'6' .. 。?如果您仍然需要將該輸入轉換爲數字,請查看'int.TryParse'。 – cHao

+0

是否有任何特定的原因使用數組?如果您使用列表,您可以更快地完成同樣的事情。 – abhi

+0

@abhi因爲數組是這個項目的一個需求。 – kichen

回答

7

當然,只是這樣做:

int userInput = Convert.ToInt32(Console.ReadLine()); 
string[] arrmerch = new string[userInput]; 

您將需要添加輸入檢查,以確保你所擁有的是一個整數,而不是別的東西。

下面是與輸入的檢查的例子:

int arraySize = 0; 
if(Int32.TryParse(Console.ReadLine(), out arraySize)) 
{ 
    string[] arrmerch = new string[arraySize]; 

    //the rest of your code 
    //... 
    //. 
} 
else 
{ 
    //The user entered a value which cannot be parsed to an int 
} 
+0

非常感謝! :) – kichen

+0

不客氣。如果這有幫助,你應該[考慮接受它作爲答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – DGibbs

0

變化 串[] arrmerch =新的字符串[6];

string[] arrmerch = new string[Convert.ToInt32(Console.ReadLine())]; 

將採取的用戶輸入,並創建和尺寸的陣列。

0

如何:

int numberOfQuestions = Convert.ToInt32(Console.Readline()); 
string[] arrmerch = new string[numberOfQuestions]; 

for (int i = 0; i <= arrmerch.Length; i++) 
        { 
         Console.Write("Item choice: "); 
         arrmerch[i] = Console.ReadLine(); 

是否需要錯誤檢查,雖然。

0

您也可以使用Generic Lists。他們更靈活,如果你想改變你的陣列lenght在未來

int count = Convert.ToInt32(Console.ReadLine()); 
var list = new List<string>(); 
for (int i = 0; i <= count; i++) 
{ 
    Console.Write("Item choice: "); 
    list.Add(Console.ReadLine()); 
}