2017-10-16 51 views
0

我想讓按鈕從文本框中輸入並將其添加到索引。問題在於,對於我嘗試過的所有東西,我無法讓它爲索引中的每個位置賦予唯一的值。爲數組的索引分配唯一值

private void addBtn_Click(object sender, EventArgs e) 
{ 
    for (int i = 0; i < nums.Length; i++) 
    { 
     if (nums[0] == 0) 
     { 
      nums[0] = int.Parse(inputText.Text); 
      i++; 
     } 

     if (nums[1] == 0) 
     { 
      nums[1] = int.Parse(inputText.Text); 
      i++; 
     } 
    } 

    MessageBox.Show(nums[i].ToString()); 
} 

現在我的代碼插入值到兩個索引位置,而不是分配一個值到位置0,然後允許用戶插入一個不同的值到位置1,等等等等。

+0

'int.Parse(inputText.Text)'被分配給數組的0和1,所以當然他們沒有區別。你是不是想把'i'分配給元素0? – Plutonix

+0

如果我明白你想要的是什麼,你需要在課堂上有一個新字段來跟蹤最後使用的索引。然後你可以做'nums [lastIndex] = ...; lastIndex的++'。或者當然,使用'List '。 –

+0

你是不是故意使用'else if(nums [1] == 0)'而不是'if',這樣兩個位置不會同時更新? – MisterMystery

回答

4

目前尚不清楚你的意圖是什麼,但它看起來像你可能試圖給數組添加數字。此代碼將分析字符串分配給數組中不爲零的第一項。

private void addBtn_Click(object sender, EventArgs e) 
{ 
    int i = 0; 
    for (; i < nums.Length; i++) 
    { 
     if (nums[i] == 0) 
     { 
      nums[i] = int.Parse(inputText.Text); 
      break; 
     } 
    } 
    MessageBox.Show(nums[i].ToString()); 
} 

但是,這將是一個更好的辦法,因爲用戶可以鍵入「0」:

private int _lastUsedIndex = -1; 
private void addBtn_Click(object sender, EventArgs e) 
{ 
    var number = int.Parse(inputText.Text); 

    // Increment by one 
    ++_lastUsedIndex; 

    nums[_lastUsedIndex] = number; 

    MessageBox.Show(number.ToString()); 
} 

但儘管如此,數組是不是一個好主意:當你添加它們不能生長的東西。首先他們比你需要的大,然後他們突然變得太小,你就會崩潰。我們現在有更好的選擇。除非您的老師堅持您必須使用陣列,否則請使用List<int>。在這個版本中,我們還將使用不同的方式來解析數字,如果用戶鍵入「LOLWUT?!?!」,則該數字不會崩潰。而不是一個數字:

private List<int> nums = new List<int>(); 

private void addBtn_Click(object sender, EventArgs e) 
{ 
    int number; 

    if (int.TryParse(inputText.Text, out number)) 
    { 
     nums.Add(number); 

     MessageBox.Show(number.ToString()); 
    } 
    else 
    { 
     MessageBox.Show(inputText.Text + " isn't a number, smart guy."); 
    } 
} 
+0

@ p.s.w.g。謝謝! –

+1

這個答案似乎涵蓋了基地。順便說一句,你的用戶名是[Dunsany勳爵]的參考資料(https://en.wikipedia.org/wiki/Edward_Plunkett,_18th_Baron_of_Dunsany)? –

+0

@ p.s.w.g謝謝。是的。 –