C# 如何在C中动态添加到列表

C# 如何在C中动态添加到列表,c#,list,listbox,C#,List,Listbox,我有一个集合类,它是一个放置列表对象的类,成分对象列表的内容通过绑定显示在一个复选框中 我试图做的是,当用户单击其中一个列表项时,该特定项中的信息将复制到另一个名为List myPizza的列表中,然后该列表将显示在列表上。我希望所有数据都进入其中的原因是,一旦进入myPizza列表,我会对数据做更多的事情 我尝试过这样做,但似乎不起作用,下面是CollectionClass、windows窗体和Component类。我没有费心把比萨饼类,因为它与配料类是一样的 我知道如何使用item将其添加到

我有一个集合类,它是一个放置列表对象的类,成分对象列表的内容通过绑定显示在一个复选框中

我试图做的是,当用户单击其中一个列表项时,该特定项中的信息将复制到另一个名为List myPizza的列表中,然后该列表将显示在列表上。我希望所有数据都进入其中的原因是,一旦进入myPizza列表,我会对数据做更多的事情

我尝试过这样做,但似乎不起作用,下面是CollectionClass、windows窗体和Component类。我没有费心把比萨饼类,因为它与配料类是一样的 我知道如何使用item将其添加到列表框中,但我确实希望将其添加到列表中,然后将列表添加到列表框中

我希望这是有意义的,对编程来说是新的。谢谢

配料类

收藏课


那么,您想获取检查项目的比萨饼详细信息吗?还有,比萨饼类在哪里?是的,我想获得每个点击物品的所有详细信息,并将它们添加到我的比萨饼列表中。。我没有添加Pizza类,因为它与配料类完全相同。您可能需要Pizza类中的List属性。然后你会将所选的配料添加到列表中。我该怎么做?所以你有一个列表框,每个项目都是一个复选框,对吗?您使用了哪种C UI实现?WPF还是WindowsForm?
public partial class Form1 : Form
{
    //List<Ingredient> myIngredient = new List<Ingredient>();
    List<Pizza> myPizza = new List<Pizza>();
    CollectionClass myCollections = new CollectionClass();

    public Form1()
    {
        InitializeComponent();

        myCollections.createList();

        checkedListBoxIngredients.DataSource = new BindingSource(myCollections.myIngredient, null);
        checkedListBoxIngredients.DisplayMember = "DisplayName";
    }

    private void checkedListBoxIngredients_ItemCheck(object sender, ItemCheckEventArgs e)
    {
        foreach (Pizza pizza in myPizza)
        {
            checkedListBoxIngredients.Items.Add(pizza.ToppingName);
            checkedListBoxIngredients.Items.Add(pizza.UnitName);
            checkedListBoxIngredients.Items.Add(pizza.Cost);
            checkedListBoxIngredients.Items.Add(pizza.DescriptionName);
        }

        if (e.NewValue == CheckState.Checked)
        {
            yourPizza.DataSource = new BindingSource(myPizza, null);
            yourPizza.DisplayMember = "DisplayName";
        }
    }
}
public class Ingredient
{
     public string ToppingName { get; set; }
     public string UnitName { get; set; }
     public int Cost { get; set; }
     public string DescriptionName { get; set; }

     public Ingredient(string pizzaToppingName, string pizzaToppingUnit, int pizzaCost, string pizzaDescription)
     {
         ToppingName = pizzaToppingName;
         UnitName = pizzaToppingUnit;
         Cost = pizzaCost;
         DescriptionName = pizzaDescription;
     }

     public string DisplayName
     {
         get
         {
             return ToppingName + " $"+Cost;
         }
     }

     public override string ToString()
     {
         return ToppingName;
     }

  }
public class CollectionClass
{
    public List<Ingredient> myIngredient = new List<Ingredient>();

    public void createList()
    {
        myIngredient.Add(new Ingredient("Cheese", "grams", 3, "grab cheese and sprinkle on top of pizza"));
        myIngredient.Add(new Ingredient("Olives", "grams", 2, "cut up olives and sprickle on pizza"));
        myIngredient.Add(new Ingredient("Ham", "grams", 1, "spread cut up ham over pizza"));
        myIngredient.Add(new Ingredient("Pineapple", "grams", 1, "spread cut up chunks over pizza"));
        myIngredient.Add(new Ingredient("Pepperoni", "pieces", 1, "place slices on pepperoni on pizza"));
        myIngredient.Add(new Ingredient("Onion", "handfuls", 1, "sprinkle cut up onion on pizza, try not to cry"));
        myIngredient.Add(new Ingredient("Peppers", "grams", 1, "sprinkle cut up peppers on pizza"));
        myIngredient.Add(new Ingredient("Anchovy", "grams", 1, "place on top of pizza"));
        myIngredient.Add(new Ingredient("Mushrooms", "grams", 1, "put gently on top of pizza"));
    }

    public void displayList()
    {
        foreach (Ingredient ingred in myIngredient)
            if (ingred != null)
            {
                Console.WriteLine("{0} {1} ${2}.00, {3}",
                    ingred.ToppingName, ingred.UnitName, ingred.Cost,
                    ingred.DescriptionName);
            }
    }
}