更新#1: 这是我所做的更改,但他们没有工作:蹊跷的使用上添加列表
1)删除静态
string date;
string title;
string description;
string organizer;
string place;
2)使坦佩当地
events tempe = new events();
tempe.setDate(event_info[0]);
tempe.setTitle(event_info[1]);
tempe.setPlace(event_info[2]);
tempe.setDesc(event_info[3]);
tempe.setOrganizer(event_info[4]);
eventsarray.Add(tempe);
tempe = null;
3)使用列表直接
eventsarray.Add(new events());
eventsarray[eventsarray.Count - 1].setDate(event_info[0]);
eventsarray[eventsarray.Count - 1].setTitle(event_info[1]);
eventsarray[eventsarray.Count - 1].setPlace(event_info[2]);
eventsarray[eventsarray.Count - 1].setDesc(event_info[3]);
eventsarray[eventsarray.Count - 1].setOrganizer(event_info[4]);
原来的问题
我想事件的列表保存到列表中,但是当我尝试添加新的事件,事件列表中的所有其他情况下也得到了由取代上次输入。 下面的代码包含通过使用.Add将新事件存储到列表中的过程,该过程由3组代码提供输出以用于调试。
if (eventsarray.Count > 0)
{
richTextBox1.Text = richTextBox1.Text + "Before Insert: \r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray.Count: " + eventsarray.Count.ToString() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getDate: " + eventsarray[0].getDate() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getTitle: " + eventsarray[0].getTitle() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getPlace: " + eventsarray[0].getPlace() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getDesc: " + eventsarray[0].getDesc() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getOrganizer: " + eventsarray[0].getOrganizer() + "\r\n\r\n";
}
//store all into into a new event in eventsarray
tempe.setDate(event_info[0]);
tempe.setTitle(event_info[1]);
tempe.setPlace(event_info[2]);
tempe.setDesc(event_info[3]);
tempe.setOrganizer(event_info[4]);
//something is wrong with .Add?
eventsarray.Add(tempe);
if (eventsarray.Count > 0)
{
richTextBox1.Text = richTextBox1.Text + "After Insert: \r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray.Count: " + eventsarray.Count.ToString() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getDate: " + eventsarray[0].getDate() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getTitle: " + eventsarray[0].getTitle() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getPlace: " + eventsarray[0].getPlace() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getDesc: " + eventsarray[0].getDesc() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[0].getOrganizer: " + eventsarray[0].getOrganizer() + "\r\n\r\n";
}
richTextBox1.Text = richTextBox1.Text + "eventsarray.Count: " + eventsarray.Count.ToString() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "Event " + event_info[1] + " has been added to List." + "\r\n\r\n";
for (int i = 0; i < eventsarray.Count; i++)
{
richTextBox1.Text = richTextBox1.Text + "Looping: "+ i.ToString() + "\r\n" ;
richTextBox1.Text = richTextBox1.Text + "eventsarray.Count: " + eventsarray.Count.ToString() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[i].getDate: " + eventsarray[i].getDate() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[i].getTitle: " + eventsarray[i].getTitle() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[i].getPlace: " + eventsarray[i].getPlace() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[i].getDesc: " + eventsarray[i].getDesc() + "\r\n";
richTextBox1.Text = richTextBox1.Text + "eventsarray[i].getOrganizer: " + eventsarray[i].getOrganizer() + "\r\n\r\n";
}
并且输出是这样的(第一事件的输入和第二事件是不同的):
。新增的代码之前,它仍然是完全没有问题。我尝试使用断点来查看是否有任何循环而不是使行运行两次,但它只运行一次。我尝试使用.Insert(0,eventsarray),但问题仍然存在,并且输出完全相同。有人有什么主意吗?谢谢。
你如何声明和初始化变量_tempe_? – Steve 2014-12-13 16:27:58
也许* static *是不必要的。 – Ripple 2014-12-13 16:29:58
以前不是'tempe'吗?我想这个列表有两次相同的参考。 – 2014-12-13 16:30:20