Array slicing with loops or LINQ is verbose. C# 8+ has Python-like syntax.
Old Way:
var numbers = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// Get last element
var last = numbers[numbers.Length - 1]; // 9
// Get last 3 elements
var lastThree = numbers.Skip(numbers.Length - 3).ToArray(); // [7,8,9]
New Way:
var numbers = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// Get last element
var last = numbers[^1]; // 9
// Get last 3 elements
var lastThree = numbers[^3..]; // [7, 8, 9]
// Get first 3 elements
var firstThree = numbers[..3]; // [0, 1, 2]
// Get middle elements (index 3 to 6)
var middle = numbers[3..7]; // [3, 4, 5, 6]
// Everything except first and last
var middle2 = numbers[1..^1]; // [1, 2, 3, 4, 5, 6, 7, 8]
Much cleaner and more readable!
