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
}