C#-如何在返回的值为null时使用LINQ提供默认值

时间:2018-11-17 21:09:58

标签: c# linq null

因此,我正在使用LINQ检索第一个名为John的帐户的帐户电子邮件。但是,如果找不到,我想返回一个空字符串。

这是我的代码:

string Email = Accounts?.Where(x => x.Name == "John").Select(z => z.Email).First() ?? string.Empty

为什么它返回null而不是空字符串?

2 个答案:

答案 0 :(得分:0)

您使用了三元if。您应该写其他条件。例如:

string Email = Accounts?.Where(x => x.Name == "John").Select(z => z.Email).First() ?? string.Empty : Accounts?.Where(x => x.Name == "John").Select(z => z.Email).First()

你可以试试吗?

答案 1 :(得分:0)

如果查询返回null,您可以尝试将null合并将其设置为空字符串:

string email = Accounts?.Where(x => x.Name == "John").FirstOrDefault()?.Email ?? string.Empty;