/// <summary> /// Takes a list of string lines and, if the first line contains a plan /// name using "Base Plan", convert it to a version that only uses "Plan". /// </summary> /// <param name="lines">A list of lines defining a plan.</param> /// <returns>Returns the list of lines, with the assurance that /// any plan name starts with just "Plan".</returns> private static IEnumerable <string> NormalizePlanName(IEnumerable <string> lines) { string firstLine = lines.First(); var remainder = lines.Skip(1); string nameContent = VoteString.GetVoteContent(firstLine, VoteType.Plan); Match m = basePlanRegex.Match(nameContent); if (m.Success) { nameContent = $"Plan{m.Groups[1]}{m.Groups["planname"]}"; firstLine = VoteString.ModifyVoteLine(firstLine, content: nameContent); List <string> results = new List <string>(lines.Count()) { firstLine }; results.AddRange(remainder); return(results); } return(lines); }