繁体   English   中英

将名称列出到变量C#中

[英]List name into variable c#

如您在编程中所见,我是一个非常新的人,我正在做一个简单的程序练习。 我想例如将Item.price和Item.Name放入Listbox2。

是否有可能将arrayName放入变量并放入foreach循环中? 只是为了防止很长的IF循环或切换,或者是while循环。

For example : 
    Array variable = Drinks;
    foreach(Product item in VARIABLE)
                        {
                            listBox2.Items.Add(item.ProductName + item.Price);
                        } 

附:我已经尝试过一个临时列表,您将drinkList放入临时列表,然后将其命名为product.Name和/或Product.price。

public partial class Form1 : Form
{
    List<Product> Drinks = new List<Product>() {new Product("Coca Cola", 1.2F), new Product("Fanta", 2.0F), new Product("Sprite", 1.5F) };
    List<Product> Bread = new List<Product>() { new Product("Brown Bread", 1.2F), new Product("White Bread", 2.0F), new Product("Some otherBread", 1.5F) };

    public Form1()
    {
        InitializeComponent();
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        listBox1.Items.Clear();

        if (comboBox1.Items.IndexOf(comboBox1.SelectedItem) == 0)
        {
            foreach (Product item in Drinks)
            {
                listBox1.Items.Add(item.ProductName);
            }
        }
        else 
        {
            foreach (Product item in Bread)
            {
                listBox1.Items.Add(item.ProductName);
            }
        }
    }

    private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        // do something here
    }
}

public class Product
{
    private string productName;
    private float price;

    public Product(string productName, float price)
    {
        this.ProductName = productName;
        this.Price = price;
    }

    public string ProductName
    {
        get { return productName; }
        set { productName = value; }
    }

    public float Price
    {
       get { return price; }
       set { price = value; }
    }
}

我不确定您要寻找的是什么,但也许可以将产品类型(饮料或面包)放入结构中?

public struct Products
{
    public string type;
    public string name;
    public double price;
}

然后您可以创建列表

List<Products>

像在示例中一样在foreach循环中使用它

听起来您正在寻找的是:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    listBox1.Items.Clear();

    // start with Bread and change if necessary.
    List<Product> products = Bread;

    if (comboBox1.Items.IndexOf(comboBox1.SelectedItem) == 0)
    {
        //change the value of "products"
        products = Drinks;
    }

    foreach (Product item in products)
    {
        listBox1.Items.Add(item.ProductName + item.Price);
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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