簡體   English   中英

C# - 檢查列表是否包含屬性等於值的對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM