public static TicketSheet Parse(List <string> lines) { var sheet = new TicketSheet(); var parsingTickets = false; for (int i = 0; i < lines.Count; i++) { if (i > 0 && lines[i - 1].Contains("your ticket:")) { sheet.SantasTicket = GetTicketNumbers(lines[i]); continue; } if (i > 0 && lines[i - 1].Contains("nearby tickets:") || parsingTickets) { sheet.Tickets.Add(GetTicketNumbers(lines[i])); if (!parsingTickets) { parsingTickets = true; } continue; } var info = TicketInfo.Parse(lines[i]); if (info != null) { sheet.TicketInfos.Add(info); } } return(sheet); }
private int SolvePart1() { sheet = TicketSheet.Parse(Data); return(sheet.GetErrorRateAndRemoveInvalidTickets()); }