簡體   English   中英

為數組的索引分配唯一值

[英]Assigning unique values to the index of an array

我試圖使我的按鈕從文本框中接受輸入並將其添加到索引中。 問題是我嘗試了所有方法,但無法獲得給索引中每個位置賦予唯一值的信息。

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,依此類推。

目前尚不清楚您的意圖是什么,但看起來您可能正在嘗試向數組中添加數字。 這段代碼會將解析后的字符串分配給不為零的數組中的第一項。

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.");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM