Search code examples
c#listcontains

how to check if List<T> element contains an item with a Particular Property Value


public class PricePublicModel
{
    public PricePublicModel() { }

    public int PriceGroupID { get; set; }
    public double Size { get; set; }
    public double Size2 { get; set; }
    public int[] PrintType { get; set; }
    public double[] Price { get; set; }
}

List<PricePublicModel> pricePublicList = new List<PricePublicModel>();

How to check if element of pricePublicList contains certain value. To be more precise, I want to check if there exists pricePublicModel.Size == 200? Also, if this element exists, how to know which one it is?

EDIT If Dictionary is more suitable for this then I could use Dictionary, but I would need to know how :)


Solution

  • If you have a list and you want to know where within the list an element exists that matches a given criteria, you can use the FindIndex instance method. Such as

    int index = list.FindIndex(f => f.Bar == 17);
    

    Where f => f.Bar == 17 is a predicate with the matching criteria.

    In your case you might write

    int index = pricePublicList.FindIndex(item => item.Size == 200);
    if (index >= 0) 
    {
        // element exists, do what you need
    }