所以我使用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;