库存类

时间:2009-08-23 13:33:02

标签: c# class

我创建了一个库存类,但我不知道如何从中检索信息。我知道如何在foreach循环中查看它并显示所有项目,但我不知道如何查看YoYo是否在那里,如果是,请将名称,成本和数量打印到标签。有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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
}

如果您有大量数据,也可以查看字典...

答案 1 :(得分:1)

我希望您超越Inventory类并创建Product类。面向对象的语言都是关于封装和信息隐藏的。将Product的输出嵌入到该对象的方法中。客户可以简单地称呼它,而不必在整个地方重复它。

我还建议您在Inventory类中使用find方法来搜索Product实例。您可能希望现在按名称搜索,但成本,类别或制造商呢?也许你想稍后再扩展它。

我同意Marc的字典推荐,但我建议您将Inventory的私有实现作为其中的一部分。您正在添加一些额外的抽象,使Inventory不仅仅是一本字典。

我认为字符串和数据结构很棒,但是当将它们隐藏在对象中时,这些原语经常泄漏到代码中对于客户来说会好得多。这就是我认为良好的面向对象设计的全部意义。