[英]C# Adding multiple items to list
最近从python背景中获取了C#。 目前正在尝试使用C#中的列表。 可以说我设计了一个应用程序,希望存储有关汽车的所有信息,例如名称,品牌和颜色。 我也想要它,以便用户可以将多辆汽车添加到列表中,以便以后显示? 我将如何完成这项任务?
private void Button_Click(object sender, RoutedEventArgs e)
{
List<string> Cars = new List <string>();
string colour = txtInput.Text;
Cars.Add(colour);
lstDisplay.Items.Add(colour);
}
}
}
这是我到目前为止的一些代码。 该程序从用户那里获取输入并将其存储,然后将其添加到列表中并显示在列表框中。 但是,我注意到每次将新颜色添加到列表中时,它似乎总是空的吗? 我将如何使列表包含不同颜色的输入?
如果我正确地阅读了您的内容,那么每次单击该按钮时,您都想向列表中添加新的颜色,对吗?
如果是这样,您的问题就在这里:
List<string> Cars = new List <string>();
每次您按下按钮都会重新创建列表,实际上是将列表清零。 List<type> name = new List<type>();
会创建一个全新的列表,即使多次调用也是如此。 因此,当您在方法中调用它时,您就是在这样做。
相反,您希望将其放在方法的类的开头,因此仅创建一次。 就像是:
class CarClass()
{
List<string> Cars = new List <string>();
private void Button_Click(object sender, RoutedEventArgs e)
{
string colour = txtInput.Text;
Cars.Add(colour);
lstDisplay.Items.Add(colour);
}
}
这样,将在类创建开始时创建并初始化列表。 然后,您的方法将添加到列表中而不将其清零。
如果在创建此列表时已经有一些汽车,则可以执行以下操作:
var list = new List<Car>(existingCars);
如果不是,则稍后执行以下操作:
list.AddRange(existingCars);
list.Add(existingCar);
编辑:每次创建新列表时,请移动此行
List<string> Cars = new List <string>();
从此方法到类,例如:
private readonly List<string> Cars = new List <string>();
为了更好地回答您的问题,我需要更多信息。 您可以将汽车信息存储在内存中,但是当应用程序重新启动时,所有保存的汽车信息将丢失。 如果您需要无限期地跟踪汽车信息,则需要将汽车信息存储在数据库中。
class CarClass {
private List<string> Cars;
public CarClass() {
Cars = new List <string>();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
string colour = txtInput.Text;
Cars.Add(colour);
lstDisplay.Items.Add(colour);
}
}
这只会在实例化和使用CarClass时将Cars列表存储在内存中。 如果以后需要它,则在不再引用CarClass时,您需要将carlist信息保存在数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.