public IList FindReferences(ReferencePredicateBase predicate)
        {
            IList found = new ArrayList();

            foreach (Reference @ref in _referenceMap.Keys)
            {
                // Ignore invalid references
                if (@ref.Valid && predicate.IsMatch(@ref))
                {
                    found.Add(@ref);
                }
            }

            return(found);
        }
        private void DoReferenceOperation(ReferenceOperator refOp, ReferencePredicateBase predicate)
        {
            IList targets = ReferencePool.FindReferences(predicate);

            ReferencePool.DoReferenceOperation(targets, refOp);
        }