C# List 的 FirstOrDefault、ElementAtOrDefault

List<string> list = new List<string>();
var item = list.First(); // 异常:序列不包含任何元素
var item = list.ElementAt(0); // 异常:索引超出范围。必须为非负值并小于集合大小。
var item = list[0]; // 异常:索引超出范围。必须为非负值并小于集合大小。
var item = list.FirstOrDefault(); // 不报错。响应 Default,string 的 Default 为 null。
var item = list.ElementAtOrDefault(0); // 不报错。响应 Default,string 的 Default 为 null。

如上,不管用 First、ElementAt,还是用索引 [index],遇到元素不存在时,都会报错,只是提示略有不同。

实际中,我们用 FirstOrDefaultElementAtOrDefault 更常见,因为通常我们更希望用个默认值,而不是触发异常。

相关阅读

  • IEnumerable 中 Single、SingleOrDefault、First、FirstOrDefault、Last、LastOrDefault 区别

你可能感兴趣的