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());
 }