我有这个字符串:
foreach (string error in result.Errors)
当我检查它时表示结果。错误是IEnumerable
我试图像这样得到第一个,但它不起作用:
var error1 = result.Errors[0];
有人可以就我的错误给出建议吗?
答案 0 :(得分:3)
这样的事情:
String error1 = result.Errors.FirstOrDefault();
如果result
本身可能是null
,则必须添加额外的支票:
String error1 = result == null ? null : result.Errors.FirstOrDefault();
在所有情况下,如果error1 == null
,没有错误,否则error1
是第一个。
答案 1 :(得分:2)
可能是How do I get the first element from an IEnumerable<T> in .net?
的副本在检查null之前:
if(result.Errors == null)
return null;
尝试使用linq
result.Errors.First() ?
如果您不确定是否有任何错误:请使用
result.Errors.FirstOrDefault()
如果集合为空,它将返回null
还有一个option
result.Errors.ElementAt(0)
或硬编码:
new List<string>(result.Errors)[0] // but it's not pretty at aall
//or as poined bellow via extensions
result.Errors.ToList()[0]
result.Errors.ToArray()[0]
答案 2 :(得分:2)
试试这个
except
OR
var error1 = result.Errors.First().ToString();
答案 3 :(得分:2)
您可以使用FirstOrDefault()
扩展方法null
返回String
(如果是string first = result.Errors.FirstOrDefault();
),如果集合为空
.First()
如果colleciton为空, String.Format("{0:#,###,###.##}", result)
将抛出异常
答案 4 :(得分:2)
尝试This.If字符串为NULL
将返回空。
var error1 = result.Errors.FirstOrDefault() != null ? result.Errors.FirstOrDefault():string.Empty;
OR
var error1 = !string.IsNullOrEmpty(result.Errors.FirstOrDefault()) ? result.Errors.FirstOrDefault():string.Empty;
答案 5 :(得分:1)
试试这个First()
result.Errors.First();
或如果result.Errors
不包含任何内容,请使用FirstOrDefault
result.Errors.FirstOrDefault();