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>();
pricePublicList
の要素に特定の値が含まれているかどうかを確認する方法。より正確には、pricePublicModel.Size == 200
が存在するかどうかを確認したいですか?また、この要素が存在する場合、どの要素であるかを知る方法はありますか?
編集辞書がこれに適している場合は、辞書を使用できますが、方法を知る必要があります:)
リストがあり、リスト内の特定の条件に一致する要素が存在する場所を知りたい場合は、FindIndex
インスタンスメソッドを使用できます。といった
int index = list.FindIndex(f => f.Bar == 17);
ここで、f => f.Bar == 17
は、一致する基準を持つ述語です。
あなたの場合、あなたは書くかもしれません
int index = pricePublicList.FindIndex(item => item.Size == 200);
if (index >= 0)
{
// element exists, do what you need
}
bool contains = pricePublicList.Any(p => p.Size == 200);
あなたは存在を使用することができます
if (pricePublicList.Exists(x => x.Size == 200))
{
//code
}
これは、LINQを使用すると非常に簡単です。
var match = pricePublicList.FirstOrDefault(p => p.Size == 200);
if (match == null)
{
// Element doesn't exist
}
List<T>
には、希望することを正確に行うメソッド Find
が用意されているため、実際にはLINQは必要ありません。
指定された述語によって定義された条件に一致する要素を検索し、
List<T>
全体で最初に出現したものを返します。
サンプルコード:
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
}