繁体   English   中英

C#将多个项目添加到列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM