如果输入为null,我可以从LINQ语句返回null吗?

时间:2016-06-03 06:13:34

标签: c# linq

我有这段代码但是当示例为null时它会出错。有没有办法我可以将它保留为单行LINQ,并且如果result.examples = null,则将sampleSentences设置为null?

 var sampleSentences = result.examples
             .Select(ex => new SampleSentence { Text = ex })
             .ToList();

4 个答案:

答案 0 :(得分:4)

如果您使用的是C#6,可以写:

var sampleSentences = result?.examples
         ?.Select(ex => new SampleSentence { Text = ex })
         .ToList();

否则你可以写:

var sampleSentences = 
         result.examples == null 
             ? null 
             : result.examples
                 .Select(ex => new SampleSentence { Text = ex })
                 .ToList();

答案 1 :(得分:2)

您可以使用C#6功能:?

result.examples?
     .Select(ex => new SampleSentence { Text = ex })
     .ToList();

仅当Select不是result.examples时才会执行null

答案 2 :(得分:1)

是的,请选择:

var sampleSentences = result.examples?
             .Select(ex => new SampleSentence { Text = ex })
             .ToList();

答案 3 :(得分:1)

另一种方法是使用三元运算符

var sampleSentences = result.examples != null ? result.examples
             .Select(ex => new SampleSentence { Text = ex })
             .ToList() : null;