Count check before Linq Single() call Should I check Count before Linq Single() call if I expect only one element?

if (objects.Count != 1)
{
    throw new
        InvalidOperationException(
            "%Collection% should contain one %element%, but now it's: "
                 + objects.Count);
        }

return objects.Single();


Single implements the same check and throwing. But its message is less specific.

P.S. in my case wrong count is handled just writing log message like

_log.Error("Error during %operation%", ex);
task.Complete(TaskResult.Fail);
Yep, go for it. Adding more detail to error messages is helpful.

Also, depending on which style you prefer you could avoid explicitly checking the count by catching the exception thrown by Single().

try
{
    return objects.Single();
}
catch (InvalidOperationException ex) 
{
    throw new InvalidOperationException(
        "%Collection% should contain one %element%, but now it's: " + objects.Count,
        ex
    );
}