public TValue[] ReleaseAll() { TValue[] tValueArray; CountedSet <TValue> .ReleaseRecursor releaseRecursor = new CountedSet <TValue> .ReleaseRecursor(this); try { releaseRecursor.Run(); tValueArray = releaseRecursor.array; } finally { ((IDisposable)(object)releaseRecursor).Dispose(); } return(tValueArray); }