diff --git a/Utils/Extensions.cs b/Utils/Extensions.cs new file mode 100644 index 0000000..222cc07 --- /dev/null +++ b/Utils/Extensions.cs @@ -0,0 +1,32 @@ +namespace AdventOfCode.Utils; + +public static class Extensions +{ + /// + /// Returns a slice of the given list + /// + /// The list you pretend to slice + /// The first index of the slice + /// The index after the last index of the slice + /// + public static List Sublist(this List list, int startIndex, int endIndex) + { + List result = new List(); + for (int i = startIndex; i < endIndex; i++) + result.Add(list[i]); + return result; + } + + /// + /// Returns a column of a give matrix list + /// + /// 2 dimensions list + /// Column index + /// + public static List GetColumn(this List> list, int column) + { + List result = new List(); + foreach (List row in list) result.AddRange(row.Where((t, i) => i == column)); + return result; + } +} \ No newline at end of file