![](/img/trans.png)
[英]In C#, how to check if a property of an object in a List<> contains a string?
[英]C# - check if list contains an object where a property equals value?
有沒有一種簡單的方法可以做到不涉及循環?
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
}
你不需要反思,你可以只使用Linq:
if (_contents.Any(i=>i.Item == Item.Wood))
{
//do stuff
}
如果您需要具有該值的object / s,則可以使用Where
:
var woodItems = _contents.Where(i=>i.Item == Item.Wood);
你可以使用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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.