C#:LINQ中的嵌套的if else条件

时间:2018-10-30 22:59:33

标签: c# .net linq

我正在使用下面的LINQ Query,现在我想在LINQ Query中使用其他条件,如下所示-我如何才能达到相同的效果?

    if(stemming)
    highlightedText = c.Value.p_content != null && c.Value.p_content[0] != null ? c.Value.p_content[0] : string.Empty
    if(phoentic)
    highlightedText = c.Value.s_content != null && c.Value.s_content[0] != null ? c.Value.s_content[0] : string.Empty
    if(content)
    highlightedText = c.Value.content != null && c.Value.content[0] != null ? c.Value.content[0] : string.Empty

完整代码-

    var highlightedDataLst = objJson.highlighting.Select(c =>
    new finalOutput
    {
        highlightedKey = c.Key,                                   
        highlightedText = c.Value.content != null && c.Value.content[0] != null ? c.Value.content[0] : string.Empty
  }).ToList<finalOutput>();

1 个答案:

答案 0 :(得分:1)

嗯,刺中它,它可能看起来像这样:

var highlightedDataLst = objJson.highlighting.Select(c =>
new finalOutput
    {
        highlightedKey = c.Key,                                   
        highlightedText = (stemming ? c.Value.p_content?[0] : 
                          (phoentic ? c.Value.s_content?[0] :
                          (content  ? c.Value.content?[0] : null))) ?? ""
}).ToList<finalOutput>();

您可以使用空条件运算符(?[])和空合并运算符(??)简化条件。