public PP End() { var keys = new List <T>(); Privous.AddSubConcat((sb, p) => { foreach (var pair in Cases) { foreach (var concat in pair.Value) { if (Selector(p).Equals(pair.Key)) { keys.Add(pair.Key); concat(sb, pair.Key); } } } }); if (Defaults.Any()) { Privous.AddSubConcat((sb, p) => { if (keys.Count == Cases.Sum(pair => pair.Value.Count())) { foreach (var concat in Defaults) { concat(sb, default(T)); } } }); } return(Privous as PP); }
public PP End() { var list = List; var concats = Concats; Privous.AddSubConcat((sb, p) => { foreach (var item in list) { var currentItem = item; foreach (var concat in concats) { var currentConncat = concat; currentConncat(sb, currentItem); } } }); return(Privous as PP); }
public PP End() { Privous.AddSubConcat((sb, p) => { foreach (var concat in Concats) { if (Selector != null) { concat(sb, Selector(p)); } else { concat(sb, default(T)); } } }); return(Privous as PP); }
public PP End() { Privous.AddSubConcat((sb, p) => { var v = Selector(p); if (v.Equals(Value)) { foreach (var concat in Ifs) { concat(sb, v); } } else { foreach (var concat in Elses) { concat(sb, v); } } }); return(Privous as PP); }