RiderFlairContainer ParseFlairs(string flairs) { var bits = flairs.Split(':'); if (bits.Length == 1) { return(new RiderFlairContainer { PreflairWhitepace = flairs, Flairs = new List <RiderFlair>(), PostflairWhitepace = "" }); } var resultFlairs = new List <RiderFlair>(); for (var i = 1; i < bits.Length - 1; i += 2) { resultFlairs.Add(new RiderFlair(bits[i]) { WhitespaceAfter = bits[i + 1] }); } resultFlairs.Last().WhitespaceAfter = ""; var result = new RiderFlairContainer { PreflairWhitepace = bits.First(), Flairs = resultFlairs, PostflairWhitepace = bits.Last() }; return(result); }
string FormatFlairs(RiderFlairContainer flairs) { return($"{flairs.PreflairWhitepace}{string.Join("", flairs.Flairs.Select(FormatFlair))}{flairs.PostflairWhitepace}"); }