public override string ToString() { var result = new StringBuilder(); // todo : header result.Append("{"); var missingBars = 0; result.Append(BonesID); if (Skins == null || !Skins.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); missingBars = 0; result.Append(string.Join(",", Skins)); } if (Colors == null || !Colors.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); missingBars = 0; result.Append(string.Join(",", from entry in Colors select entry.Key + "=" + entry.Value.ToArgb())); } if (Scales == null || !Scales.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); missingBars = 0; result.Append(string.Join(",", Scales)); } if (SubLooks == null || !SubLooks.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); result.Append(string.Join(",", SubLooks.Select(entry => entry))); } result.Append("}"); return(result.ToString()); }