在我的应用中,我需要一个List作为参数传递。
我写了
List<stuff.Inventory> inv = new List<stuff.Inventory>();
inv.Add(stuff.Inventory.NotAvailable);
inv.Add(stuff.Inventory.None);
inv.Add(stuff.Inventory.Coming);
if (stuff.isStuffinInv(inv, prodID))
{
// ...
}
我的方式是对的还是需要任何新的方法来做到这一点
答案 0 :(得分:6)
嗯,除了命名约定和缩进之外,它看起来还不错。
使用C#3,您可以使用集合初始值设定项,如下所示:
List<Inventory> inventory = new List<Inventory>
{
Inventory.NotAvailable, Inventory.None, Inventory.Coming
};
if (stuff.isStuffInInv(inventory, prodID))
...
这是一种通常更具可读性的方法,IMO。
答案 1 :(得分:5)
从它的外观来看,库存似乎是一个枚举。您是否考虑过使用FlagsAttribute?
答案 2 :(得分:2)
List<stuff.Inventory> inv = new List<stuff.Inventory>()
{
stuff.Inventory.NotAvailable,
stuff.Inventory.None,
stuff.Inventory.Coming
};
根据你所描述的,enum会更合适吗?
答案 3 :(得分:0)
该代码没有什么特别的错误,但您可能需要考虑使用LINQ查询列表,而不是使用isStuffInInv方法。
if (inv.Any(x => x._?_ == prodID));