public IEnumerable <string> CollectCondition(string valname = null) { if (null != Parent) { foreach (var c in Parent.CollectCondition()) { yield return(c); } } if (null != RouteKey && !string.IsNullOrWhiteSpace(RouteKey.Condition)) { yield return(this.RouteKey.Condition); } if (!string.IsNullOrWhiteSpace(valname)) { var val = Collectors.First(_ => _.Key == valname); if (!string.IsNullOrWhiteSpace(val.Condition)) { yield return(val.Condition); } } }