2016-11-15 6 views
-4

Во-первых, пожалуйста, простите меня, поскольку я все еще пытаюсь справиться с C# и OOP.C# Список элементов с несколькими значениями

Я пытаюсь создать простую консольную корзину покупок как часть задачи, и у меня есть ряд продуктов, которые мне нужно, чтобы набрать 5 различных сценариев корзины.

Однако я не уверен относительно наилучшего подхода к перечислению каждого из продуктов, каждый из которых имеет три разных значения (Desc, Dept, Price), и я хочу иметь возможность выбирать элементы, которые мне нужны через массив, возможно.

В настоящее время у меня есть пункты, перечисленные в качестве такового:

 itemOnePrice = 10.50m; 
     itemTwoPrice = 54.65m; 
     itemThreePrice = 03.50m; 
     itemOneDept = "Clothing"; 
     itemTwoDept = "Clothing"; 
     itemThreeDept = "Head Gear"; 
     itemOneDesc = "Hat"; 
     itemTwoDesc = "Jumper"; 
     itemThreeDesc = "Head Light"; 

Я посмотрел на списки и в кортежах, но я не мог понять, как на самом деле сделать эти работы для меня. Может кто-нибудь, пожалуйста, объясните лучший подход, чтобы перечислить эти продукты, чтобы вытащить, чтобы заполнить содержимое моей корзины.

+0

Вы должны иметь 'item' класс, который имеет' price', 'description' и' department' и то есть массив 'item'. –

+0

Пожалуйста, определите, каковы ваши критерии «лучше», поэтому «лучший подход» может быть предоставлен. Обратите внимание, что вам кажется, что вам еще нужно прочитать о массивах/классах на C# - вы можете сначала закончить эти главы книги, прежде чем задавать вопросы о SO. –

+0

К чему я имею в виду все, что означает, что я не создаю огромное количество переменных, поскольку я знаю, что это не лучший способ приблизиться к тому, чего я пытаюсь достичь. Я потратил на себя время, пытаясь заставить Tuple работать, но я обнаружил, что мне не удалось успешно его инициализировать, и список изначально, казалось, позволял мне только одно значение, хотя я могу видеть из ответов, что это не так. Я потратил часы, пытаясь заставить его работать и исследовать различные методы, но есть предел тому, что я сейчас понимаю. Я не понимал, что я бы проголосовал за задание основного вопроса, извините. – Jason

ответ

2

Во-первых, создать класс

class Item 
{ 
    public decimal Price {get;set;} 
    public string Department {get;set;} 
    public string Description {get;set;} 
} 

Во-вторых, создать список

List<Item> items = new List<Item>(); 

items.Add(new Item{Price = 10.5m, Department = "Clothing", Description = "Hat"}); 
items.Add(new Item{Price = 54.65m, Department = "Clothing", Description = "Jumper"}); 
items.Add(new Item{Price = 03.50m, Department = "Head Gear", Description = "Head Light"}); 
+0

Ни в коем случае это не «лучший» подход. В чем причина создания изменчивых свойств? Я бы сказал, что неизменный класс будет лучше того, кого вы предложили. Обязательно обсудите это. Также 'Desc' - это не слово - как это может быть лучше, чем« Описание »? –

+0

Fix Price setter. – mybirthname

+0

@AlexeiLevenkov Это зависит от требований OP. Не смотря на детали, я ничего не могу сказать. –

Смежные вопросы