如果有可能找不到元素,我应该使用Single()还是SingleOrDefault()?
- 论坛
- 如果有可能找不到元素,我应该使用Single()还是SingleOrDefault()?
20 浏览
如果有可能找不到元素,我应该使用Single()还是SingleOrDefault()?
你更喜欢看到哪个呢?
try { var item = list.Single(x => x.HasFoo); } catch(InvalidOperationException e) { throw new InvalidOperationException("期望找到一个具有 foo 的项目,但找不到", e); }
还是:
var item = list.SingleOrDefault(x => x.HasFoo); if (item == null) throw new InvalidOperationException("期望找到一个具有 foo 的项目,但找不到");
这里应该遵循什么最佳实践?哪个使异常更易理解?