public void Accept(IVisitor visitor) { visitor.BeforeValues(); bool first = true; foreach (var value in values) { if (first) { first = false; } else { visitor.DuringValues(); } value.Accept(visitor); } visitor.AfterValues(); }