您應該::::::很多方法可以優化你想要做的事情,但這是作業,你不想看起來像你是世界上最偉大的程序員 - 你想要做像教授期待你那樣的項目。因此創建類和連接列表不屬於您的特定解決方案集。嘗試:
PS - 在第一個答案上,我儘量保持我的建議代碼儘可能接近您的意見 - 在不更改代碼的情況下回答您的問題。另一位評論者建議,不斷更新文本框。文本將導致閃爍的問題。如果發生這種情況,我會建議在編輯文本時使用臨時字符串。
我知道這是家庭作業 - 所以我不建議任何大的優化,這會讓你看起來像你一直在做你的功課完成。
編輯您已經要求檢測空白的方法。根據我對你的代碼的理解,並保持它的簡單,嘗試:
private void AddButton_Click(object sender, EventArgs e)
{
if (this.index < 10)
{
if(nameBox.Text.Length==0||weightBox.Text.Length==0||heightBox.Text.Length==0){
MessageBox.Show("You must enter a name, weight, and height!");
}else{
nameArray[this.index] = nameBox.Text;
weightArray[this.index] = double.Parse(weightBox.Text);
heightArray[this.index] = double.Parse(heightBox.Text);
this.index++;
nameBox.Text = "";
weightBox.Text = "";
heightBox.Text = "";
}
}
}
private void ShowButton_Click(object sender, EventArgs e)
{ string myString = "";
for(int i=0;i<nameArray.Length;i++)
{
myString+= "Name: "+nameArray[i]+", ";
myString += "Weight: "+weightArray[i]+", ";
myString += "Height: "+heightArray[i]+"\n");
}
txtShow.Text = myString;
}
注意文本框必須驗證方法將做我的修訂編輯我的IF/THEN語句的工作找空瓶。如果您認爲教授正在尋找形式(控制)驗證而不是IF/THEN後面的代碼隱藏,請告訴我,我會爲您提供幫助。
好的 - 你提到需要排序。要做到這一點,我們需要使用某種方法來分組輸入數據。我們可以使用Dictionary或class。讓我們一起去上課:
把它放在一起:看看這個潛在的解決方案 - 如果你覺得它太複雜了,你的作業應該看起來像,我們可以嘗試簡化。告訴我:
public class Person{
public string Name {get;set;}
public double Height {get;set;}
public double Weight {get; set;}
public string Print(){
return "Name: "+Name+", Height: "+Height.ToString()+", Weight: "+Weight.ToString()+"\r\n";
}
}
Person[] People = new Person[10];
int thisIndex = 0;
private void AddButton_Click(object sender, EventArgs e)
{
if (this.index < 10)
{
if(nameBox.Text.Length==0||weightBox.Text.Length==0||heightBox.Text.Length==0)
{
MessageBox.Show("You must enter a name, weight, and height!");
}else{
Person p = new Person();
p.Name = nameBox.Text;
p.Weight = double.Parse(weightBox.Text);
p.Height = double.Parse(heightBox.Text);
People[thisIndex] = p;
thisIndex++;
nameBox.Text = "";
weightBox.Text = "";
heightBox.Text = "";
}
}
}
private void ShowButton_Click(object sender, EventArgs e)
{
People = People.OrderBy(p=>p.Name).ToArray();
string myString = "";
for(int i=0;i<10;i++)
{
if(People[I]!=null){
myString+= People[I].Print();
}
}
txtShow.Text = myString;
}
那麼,你可以改變'nameArray'到'string.Concat(nameArray)'等。 – Fabjan
謝謝您的回覆! –
您正在討論多維數組,儘管下面的所有答案都是正確的,但這可能是您需要的最充分的答案。 https://www.dotnetperls.com/multidimensional-array或這裏https://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx –