我有这段代码但是当示例为null时它会出错。有没有办法我可以将它保留为单行LINQ,并且如果result.examples = null,则将sampleSentences设置为null?
var sampleSentences = result.examples
.Select(ex => new SampleSentence { Text = ex })
.ToList();
答案 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;