因此,我正在使用LINQ检索第一个名为John的帐户的帐户电子邮件。但是,如果找不到,我想返回一个空字符串。
这是我的代码:
string Email = Accounts?.Where(x => x.Name == "John").Select(z => z.Email).First() ?? string.Empty
为什么它返回null而不是空字符串?
答案 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;