我有以下string列表:
List<string> Emails = new List<string>();
Run Code Online (Sandbox Code Playgroud)
试图查看它是否有任何值,或返回一个空字符串:
string Email = Emails[0] ?? "";
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出异常:
指数超出范围.必须是非负数且小于集合的大小.参数名称:index
但是将??运算符更改为简单的if语句,它可以正常工作:
if (Emails.Count > 0)
Email = Emails[0];
else
Email = "";
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?当列表为空时,Emails[0]不应该null?
谢谢.
Mak*_*kin 10
我建议把它改成:
string Email = Emails.FirstOrDefault() ?? "";
Run Code Online (Sandbox Code Playgroud)
如果列表为空,Emails[0]不为空,则它不存在.
编辑:适用于字符串和引用类型,如果你有一个值类型,例如int,你将得到默认值(int)作为空集合的FirstOrDefault的结果为0
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |