Jus*_*elf 20 c# linq ienumerable
我IEnumberable
收集了一些物品.我用来.Single()
在集合中找到一个特定的对象.
我选择使用Single()
因为只应该有一个特定的项目.但是,如果一个不存在,那么我需要创建它并将其添加到集合中.
我的问题是,Single()
如果没有与谓词匹配的项目或者有多个项目,则会抛出相同的错误.我的想法是将Single()
调用置于try中并捕获异常,添加项目,然后继续.但是,由于两个场景都抛出了InvalidOperationException
,我怎么能判断它是由于没有物品还是多个物品?
我知道我可以使用,First()
但这并没有强制说应该只有一个(没有做额外的工作).
我也可以Count()
在Single()
通话前使用,但这似乎只是破坏了重点Single()
Mic*_*lap 36
你想要的是什么 SingleOrDefault()
"或default"实际上意味着它返回null(对于引用类型)或者对于非引用类型的默认值.你需要新建一个对象来代替它.
我不建议在这种情况下使用try/catch,因为使用异常来做出逻辑决策是非常昂贵的.
我建议使用SingleOrDefault()
,并检查结果是否为null.如果是.做你的创作.
归档时间: |
|
查看次数: |
13032 次 |
最近记录: |