public CfgEncoder Add_Abstract <T>(string tag, List <T> val, ListMetaData ld) where T : IGotClassTag { var cody = new CfgEncoder(); if (val != null) { if (ld == null) { foreach (var v in val) { cody.Add(v.ClassTag, v); } } else { for (var i = 0; i < val.Count; i++) { var v = val[i]; cody.Add_Abstract(v, ld, i); } } } Add(tag, new CfgEncoder().Add(ListMetaTag, ld).Add(ListTag, cody)); return(this); }