private bool CachedResolve(string name, EntityType typesToConsider, ICollection<IEntity> resultingSet) { if (_cache == null) { GetMembers(); } List<IEntity> list; var result = _cache.TryGetValue(name, out list); if (result) { result = false; foreach (var entity in list) { if (Entities.IsFlagSet(typesToConsider, entity.EntityType)) { result = true; resultingSet.Add(entity); } } } return result; }