List <T> 요소에 특정 속성 값이있는 항목이 있는지 확인하는 방법 Size2 { get; set; }

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>정확히 수행하는 메서드를 제공 하기 때문에 실제로 LINQ가 필요하지 않습니다 Find.

지정된 조건 자에 정의 된 조건과 일치하는 요소를 검색하고 전체 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
}


답변