我有一些IEnumberable物品收藏。我用来.Single()在集合中查找特定对象。
我选择使用Single()是因为应该只有一个特定的项目。但是,如果一个不存在,那么我需要创建它并将其添加到集合中。
我的问题是,Single()如果没有与谓词匹配的项目或有多个项目,则会引发相同的错误。我的想法是将Single()调用放在 try 中并捕获异常,添加项目,然后继续。但是,由于这两种情况都会抛出InvalidOperationException,我如何判断它是由于没有项目还是由于多个项目?
我知道我可以使用First(),但这并不能强制认为应该只有一个(无需做额外的工作)。
我也可以Count()在Single()通话前使用,但这似乎破坏了Single()