Example #1
0
 public object this[object key]
 {
     get { return(WeakRefWrapper.Unwrap(innerHashtable[WeakRefWrapper.Wrap(key)])); }
     set
     {
         Scavenge();
         innerHashtable[WeakRefWrapper.Wrap(key)] = WeakRefWrapper.Wrap(value);
     }
 }
Example #2
0
        public bool MoveNext()
        {
            // Skip any garbage-collected key/value pairs
            while (true)
            {
                currentKey   = null;
                currentValue = null;

                if (!innerEnumerator.MoveNext())
                {
                    return(false);
                }

                currentKey   = WeakRefWrapper.Unwrap(innerEnumerator.Key);
                currentValue = WeakRefWrapper.Unwrap(innerEnumerator.Value);

                if (currentKey != null && currentValue != null)
                {
                    break;
                }
            }

            return(true);
        }