public static bool Any(this IEnumerable source)
{
if (source == null)
{
throw new ArgumentNullException("source");
}
IEnumerator enumerator = null;
try
{
enumerator = source.GetEnumerator();
return enumerator.MoveNext();
}
finally
{
// The non-generic IEnumerator interface doesn't inherit from IDisposable
// so we do this as a safety check
var disposable = enumerator as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}