title: LINQ Single() Exception for 0 or multiple items
body: <p>I have some <code>IEnumberable</code> collection of items. I use <code>.Single()</code> to find a specific object in the collection.</p>
  
  <p>I choose to use <code>Single()</code> because there should only ever be one specific item. However, if one doesn't exist, then I need to create it and add it to the collection.</p>
  
  <p>My problem is that <code>Single()</code> throws the same error if there is no item matching the predicate or if there are multiple items. My idea was to put the <code>Single()</code> call inside of a try and catch the exception, add the item, and then continue. However, since both scenarios throw the <code>InvalidOperationException</code>, how can I tell if its due to no items or multiple items?</p>
  
  <p>I know I can use <code>First()</code> but that doesn't enforce the idea that there should be only one (without doing extra work).</p>
  
  <p>I could also use <code>Count()</code> before the <code>Single()</code> call, but that just seems to undermine the point of <code>Single()</code></p>