2015-10-18 75 views
0

我想讓用戶在文本框中輸入一個數字的程序,並將其存儲到數組中。將文本框數字添加到數組c#

所以無論何時用戶點擊「計算」,它將得到數組中所有數字的平均值。出於某種原因,當我嘗試運行它時,得到:

附加信息:未將對象引用設置爲對象的實例。

但是我不能初始化數組到特定的長度,因爲我不知道用戶輸入多少個數字。所以我想知道有沒有一種方法可以使其工作,而不需要初始化數組的特定長度?

double[] numArray; 
int count=0; 

private void button1_Click(object sender, EventArgs e) 
    { 
     numArray[count] = convert.ToDouble(textBox1.Text); 
     count++; 
     displayNum.Visible = true; 
     displayNum.Text = count.ToString(); 
     ; 
    } 

回答

2

爲什麼你使用數組如果你不知道大小?改爲使用列表。

初始化:

List<double> numList = new List<double>(); 

添加到列表:

numList.Add(some_element); 
+0

列表的工作方式與獲取列表中所有數字的總和相同。抱歉,我還沒有學習如何在我的課程中使用列表,所以我只是想知道。 –

+0

非常相似。在C#中,你有一些稱爲LINQ的東西可以幫助你完成類似的任務 - 總和,平均值,過濾一些元素等。Google它,它不是太複雜 –

1

使用一個IList /列表,因爲它們以大小開始,但如果填滿大小,它們將自動獲取更多內存並增長。

IList<double> numArray = new List<double>(); 
int count=0; 

private void button1_Click(object sender, EventArgs e) 
{ 
    numArray.Add(convert.ToDouble(textBox1.Text)); 
    count++; 
    displayNum.Visible = true; 
    displayNum.Text = count.ToString(); 
} 
1

,這是不可能用的陣列。一個數組需要用數組項數來初始化。我建議使用List來代替數組。通過這種方式,您可以添加到列表中,而無需限制定義其中的項目數量。如果你在填充後需要一個數組,我相信列表中有一個ToArray方法。