Example #1
0
 public bool RemoveIf(TKey key, CheckIfRemove del) => m_RwLock.AcquireWriterLock(() =>
 {
     if (m_Dictionary.ContainsKey(key) &&
         !del(m_Dictionary[key]))
     {
         return(false);
     }
     return(m_Dictionary.Remove(key));
 });
Example #2
0
        public bool RemoveIf(TKey key, CheckIfRemove del, out KeyValuePair <TKey, TValue> kvp)
        {
            var  k = default(KeyValuePair <TKey, TValue>);
            bool s = m_RwLock.AcquireWriterLock(() =>
            {
                if (m_Dictionary.ContainsKey(key))
                {
                    TValue val = m_Dictionary[key];
                    if (!del(val))
                    {
                        return(false);
                    }
                    k = new KeyValuePair <TKey, TValue>(key, val);
                }
                return(m_Dictionary.Remove(key));
            });

            kvp = k;
            return(s);
        }