private IList<Interaction> GetIncludesRecursiveFor(IList<Interaction> interactions, IEnumerable<string> includes) { IList<Interaction> included = new List<Interaction>(); var latest = GetIncludesFor(interactions, includes); int previouscount; do { previouscount = included.Count; included.AppendDistinct(latest); latest = GetIncludesFor(latest, includes); } while (included.Count > previouscount); return included; }