public override IEnumerable<BaseRecord> Enumerate(Predicate<BaseRecord> match) { if (!match(this)) { yield break; } foreach (BaseRecord r in this.Records) { foreach (var itm in r.Enumerate(match)) { yield return itm; } } }