Вы должны указать:
private List<string> itemName;
Таким образом, когда вы добавляете имя, вы можете сделать:
itemName = new List<string>();
itemName.Add("Pizza");
Проблема, которую вы замечаете, это food.itemName - это просто список, а нестрока.Таким образом, вы можете получить строку из списка следующим образом: myList[someIndex],
это ваш объект List, за которым следует индекс элемента в вашем списке.
После того, как вы заполните свой список itemName, вы сможете его использовать.:
foreach(string f in food.itemName)
MessageBox.Show(f);
Помимо этого, я немного обеспокоен формулировками этого класса. Если объект Food представляет одну сущность пищи, то почему itemName и цена list
членыэтого класса?Они должны быть просто свойствами типа string
и double
соответственно.Когда вы создаете объект питания, объект содержит имя и цену.
public sealed class Food
{
public string itemName {get; set;}
public double unitPrice {get; set;}
}
Вот как вы могли бы это сделать:
public sealed class Food
{
public string itemName {get; set;}
public double unitPrice {get; set;}
public double itemUnit {get; set;}
public double getItemPrice() { return itemUnit * unitPrice; }
public Food() : this("unknown food", 0);
public Food(string item, double price) { itemName = item; unitPrice = price; }
//you might want to rethink your customer object as well. Are
//you associating one customer with one item of food ?
}
А как использовать класс:
public sealed class MyUsageOfFood
{
public static void main() {
List<Food> f = new List<Food>;
f.Add(new Food("Pizza", 1.50));
f.Add(new Food("Hamburger", 2.00));
foreach(food t in f)
MessageBox.Show(t.itemName);
}}