如何在lambda表达式中进行复合条件

时间:2016-11-14 17:56:22

标签: c# linq lambda contains

我有以下课程:

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; }
    }

现在我想使用if条件,我想检查是否有prompt level等于“WARN”并且提示对象也在{{1}中包含字符串“HOPPER” }。我怎么能这样做?

我试过这种方式,但无法弄清楚。我怎样才能做到这一点?

message

1 个答案:

答案 0 :(得分:1)

你的上一个声明正在做的是说如果任何提示有level == "WARN"并且任何提示都有一条包含HOPPER的消息(不一定是level = WARNING的同一提示),那么进入if块。您要做的是检查相同的提示是否符合以下两个条件:

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