我上了这个课:
public class Itemcollection : Item
{
public List<Item> Items{ get; set; }
}
现在我将商品添加到列表中
if (item is Itemcollection collection)
{
list.AddRange(collection.items);
}
else
{
list.Add(item);
}
有没有一种方法可以避免对象检查(如果(项目是Itemcollection集合)),而可以通过更通用的方式或类似的方式进行。
答案 0 :(得分:0)
这取决于对象 item 是什么类型,但是我认为如果没有类型检查,就无法做到这一点。您可以将代码包装在一个方法中,然后在此处进行检查。另一种选择是方法重载。
答案 1 :(得分:0)
请确保您的所有商品 all 中都包含商品的集合,而不是让某些商品具有Items
集合,而有些商品则没有。然后,如果对象在逻辑上表示单个值而不是值的集合,则只需使该集合包含单个项即可。这样,在这里(和其他地方)处理项目的代码中,您可以处理所有项目的 all ,如果“所有项目”最终都是一个项目,就这样吧。>