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 :)
This is pretty easy to do using LINQ:
var match = pricePublicList.FirstOrDefault(p => p.Size == 200);
if (match == null)
{
// Element doesn't exist
}
You can using the exists
if (pricePublicList.Exists(x => x.Size == 200))
{
//code
}
bool contains = pricePublicList.Any(p => p.Size == 200);
You don't actually need LINQ for this because List<T>
provides a method that does exactly what you want: Find
.
Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire
List<T>
.
Example code:
PricePublicModel result = pricePublicList.Find(x => x.Size == 200);
var item = pricePublicList.FirstOrDefault(x => x.Size == 200);
if (item != null) {
// There exists one with size 200 and is stored in item now
}
else {
// There is no PricePublicModel with size 200
}
Source: Stackoverflow.com