2016-11-14 2 views
0

나는 다음과 같은 클래스가 :수행하는 방법에 복합 조건

public class PriceSelectionsResponse 
{ 
public Prompts Prompts { get; set; } 
} 

public class Prompts 
    { 
     public List<Prompt> prompt { get; set; } 
    } 

public class Prompt 
    { 
     public int code { get; set; } 
     public object level { get; set; } 
     public object message { get; set; } 
     public object details { get; set; } 
    } 

지금 내가 어떤 promptlevel는 "WARN"같으며 그 프롬프트 경우 확인하려는 조건을 경우를 사용하려면 또한 객체는 message에 "HOPPER"문자열을 포함합니다. 어떻게해야합니까?

나는이 방법을 시도했지만 그럴 수 없었다. 이것을 어떻게 할 수 있습니까?

if(PriceSelectionsResponseRootObject.Response.PriceSelectionsResponse.Prompts.prompt.Any(p => p.level == "WARN") && PriceSelectionsResponseRootObject.Response.PriceSelectionsResponse.Prompts.prompt.Where(p=>p.message.contains("Hopper")) { 

    } 
+0

당신은 단지'목록 을'포함'Prompts'라는 클래스가 있나요 이유 : 당신이하고 싶은 것을 같은 프롬프트 경기를 모두 조건을 확인입니까? 왜 'PriceSelectionsResponse'에 직접 컬렉션을 가지고 있지 않습니까? –

+0

무엇이 오류였습니까? 그것이 작동해야하는 것처럼 보입니다. – jdmdevdotnet

+0

@DarrenYoung 사실 우리는 json 요청을 모델 클래스에 매핑하므로 도움이되지 않을 수 있습니다. –

답변

1

무엇 마지막 문은 메시지 중 하나가 level == "WARN"을 가지고 있으며 메시지의 메시지 포함 호퍼 (레벨 = 경고와 반드시 같은 프롬프트)이있는 경우 다음의 경우 블록으로 이동 말하고하고있다.

if(PriceSelectionsResponseRootObject.Response.PriceSelectionsResponse 
    .Prompts.prompt.Any(p => p.level.ToString() == "WARN" && p.message.ToString().Contains("HOPPER")) 
{ 
} 
+0

'p.level.ToString() == "WARN"'에서 왼쪽 손바닥을 입력하여 캐스트 하시겠습니까? –

+0

@ zariakhan이 내 대답을 업데이트했습니다.'level'은'object' 유형이므로 'ToString()'을 문자열과 비교하기 전에 그것을 놓친 원래의 게시물에서 – KMoussa