如何从C#中的列表中获取第一个字符串?

时间:2015-08-05 07:01:33

标签: c#

我有这个字符串:

   foreach (string error in result.Errors)

当我检查它时表示结果。错误是IEnumerable

我试图像这样得到第一个,但它不起作用:

   var error1 = result.Errors[0];

有人可以就我的错误给出建议吗?

6 个答案:

答案 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();