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



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

这是我的代码:

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

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

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

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()

你能试试这个吗?

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

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

相关内容

  • 没有找到相关文章

最新更新