public List<IEntity> Select(EntityPredicate predicate) { List<IEntity> found = new List<IEntity>(); foreach (IEntity entity in _entities) { if (predicate(entity)) found.Add(entity); } return found; }