空条件运算符和LINQ

时间:2016-11-01 09:14:09

标签: c#

我的代码(用于网络核心项目):

 var list = await user.RelatedEntityCanBeNull?.ToListAsync();

如果UserE的RelatedEntityCanBeNull为null,则抛出NullReferenceException。为什么表达式不返回null?

1 个答案:

答案 0 :(得分:4)

await运算符需要一个等待的Task对象。 Null条件运算符返回nullawait null结果为NullReferenceException

您必须将代码更改为

List list = null;
if (user?.RelatedEntityCanBeNull != null)
   list = await user.RelatedEntityCanBeNull.ToListAsync();

var list = user?.RelatedEntityCanBeNull == null ? null : await user.RelatedEntityCanBeNull.ToListAsync();