private static IEnumerable <string[]> GetLabelValues <TChild>(Collector <TChild> collector) where TChild : ChildBase { var labelValues = collector.CallMethod("GetAllLabels", Flags.NonPublic | Flags.Instance) as object[]; return(labelValues .Select(x => x.GetFieldValue("Values") as string[]) // empty case is contained in the label values, need to exclude it .Where(x => x.Length != 0)); }