diff --git a/Advent Of Code Library/2023/Day 01/Day01Part2.cs b/Advent Of Code Library/2023/Day 01/Day01Part2.cs index 28fca5a..dba08f5 100644 --- a/Advent Of Code Library/2023/Day 01/Day01Part2.cs +++ b/Advent Of Code Library/2023/Day 01/Day01Part2.cs @@ -19,23 +19,10 @@ private int GetValueFromLine(string line) { - MatchCollection matchCollection = Regex.Matches(line, @"(\d)"); - List captures = matchCollection.ToList(); - - // replace the text with numbers - captures.AddRange(Regex.Matches(line, @"(one)")); - captures.AddRange(Regex.Matches(line, @"(two)")); - captures.AddRange(Regex.Matches(line, @"(three)")); - captures.AddRange(Regex.Matches(line, @"(four)")); - captures.AddRange(Regex.Matches(line, @"(five)")); - captures.AddRange(Regex.Matches(line, @"(six)")); - captures.AddRange(Regex.Matches(line, @"(seven)")); - captures.AddRange(Regex.Matches(line, @"(eight)")); - captures.AddRange(Regex.Matches(line, @"(nine)")); - captures = captures.OrderBy(x => x.Index).ToList(); - + // get all the items + List matches = Regex.Matches(line, @"(\d|one|two|three|four|five|six|seven|eight|nine)").OrderBy(x => x.Index).ToList(); // merge first and last index as one - string values = GetStringAsNumber(captures.First().Value) + GetStringAsNumber(captures.Last().Value); + string values = GetStringAsNumber(matches[0].Value) + GetStringAsNumber(matches[^1].Value); // make an int return int.Parse(values); }