2009-08-23 2 views
1

Я создал класс инвентаризации, но я не знаю, как извлечь из него информацию. Я знаю, как перебирать его в цикле foreach и отображать все элементы, но я не знаю, как увидеть, находится ли YoYo там, и если да, напечатайте имя, стоимость и количество на ярлыке. Кто-нибудь может помочь?Класс инвентаря

+4

Некоторый код был бы хорош. Пока мы не узнаем, как выглядит ваш класс Inventory, мы мало что можем сделать. –

ответ

1

Я надеюсь, что вы собираетесь дальше класс Inventory и создание класса Product. Объектно-ориентированные языки касаются инкапсуляции и скрытия информации. Вставьте вывод продукта в метод для этого объекта. Клиенты могут просто назвать это так, вместо того, чтобы повторять его повсюду.

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

Я согласен с рекомендацией словаря Marc, но я бы посоветовал вам сделать частную реализацию Inventory. Вы добавляете дополнительный бит абстракции, который делает Inventory чем-то большим, чем простой словарь.

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

1

Поскольку вы упомянули foreach, похоже, что он реализует IEnumerable<T>. В этом случае, если вы используете C# 3.0/LINQ, что-то вроде:

var yoyo = inventory.FirstOrDefault(item => item.Name == "YoYo"); 
if(yoyo != null) { // found it 
    Console.WriteLine(yoyo.Cost); // etc 
} 

Вы также можете посмотреть на словари, если у вас есть много данных ...

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