是否有一种不涉及循环的简写方法?
public enum Item { Wood, Stone, Handle, Flint, StoneTool, Pallet, Bench }
public struct ItemCount
{
public Item Item;
public int Count;
}
private List<ItemCount> _contents;
如下所示:
if(_contents.Contains(ItemCount i where i.Item == Item.Wood))
{
//do stuff
}
答案 0 :(得分:6)
您不需要反思,只需使用Linq:
if (_contents.Any(i=>i.Item == Item.Wood))
{
//do stuff
}
如果您需要具有该值的对象,则可以使用Where
:
var woodItems = _contents.Where(i=>i.Item == Item.Wood);
答案 1 :(得分:3)
您可以使用Linq
扩展方法Any
执行此操作。
if(_contents.Any(i=> i.Item == Item.Wood))
{
// logic
}
如果您需要匹配的对象,请执行此操作。
var firstMatch = _contents.FirstOrDefault(i=> i.Item == Item.Wood);
if(firstMatch != null)
{
// logic
// Access firstMatch
}