Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存货类别_C#_Class - Fatal编程技术网

C# 存货类别

C# 存货类别,c#,class,C#,Class,我已经创建了一个Inventory类,但我不知道如何从中检索信息。我知道如何在foreach循环中查看它并显示所有项目,但我不知道如何查看YoYo是否在其中,如果在那里,则将名称、成本和数量打印到标签上。有人能帮忙吗?既然你提到了foreach,听起来它实现了IEnumerable。在这种情况下,如果您使用的是C#3.0/LINQ,则类似于: var yoyo = inventory.FirstOrDefault(item => item.Name == "YoYo"); if(yoyo

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

既然你提到了foreach,听起来它实现了
IEnumerable
。在这种情况下,如果您使用的是C#3.0/LINQ,则类似于:

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

如果你有很多数据,你也可以看看字典…

我希望你不仅仅是一个库存类,还要创建一个产品类。面向对象语言都是关于封装和信息隐藏的。将产品的输出嵌入该对象的方法中。客户可以简单地这样称呼它,而不必到处重复

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

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


我认为字符串和数据结构非常好,但是当将它们隐藏在对象中时,这些原语常常会泄漏到代码中,这对客户端来说会更好。这就是我认为好的面向对象设计的全部内容。

一些代码会很好。在我们知道你的库存类是什么样子之前,我们无能为力。