String
sliceA string
can be sliced. To do this, we provide an extension method. By slicing a string
, we extract the characters from index one to index two.
Taking a slice is essentially the same as calling Substring
with 2 index values. But sometimes using a second argument of the last index is easier.
The key thing to remember with slice is that the second argument is an end index, not a length. And we can use a negative end index to count from the end.
Slice(1, 4) ABCDEF BCD Slice(3, -2) The morning is upon us. morning is upon u
Here we develop a method in C# to match JavaScript. With the JavaScript slice method, you pass it the start index, which must always be 0 or higher.
Length
-1 as the second parameter.using System; class Program { static void Main() { Console.WriteLine("ABCDEF".Slice(1, 4)); Console.WriteLine("The morning is upon us.".Slice(3, -2)); string s = "0123456789_"; // These slices are valid: Console.WriteLine(s.Slice(0, 1)); // First char Console.WriteLine(s.Slice(0, 2)); // First two chars Console.WriteLine(s.Slice(1, 2)); // Second char Console.WriteLine(s.Slice(8, 11)); // Last three chars } } public static class Extensions { public static string Slice(this string source, int start, int end) { // Keep this for negative end support. if (end < 0) { end = source.Length + end; } // Calculate length. int len = end - start; // Return Substring of length. return source.Substring(start, len); } }BCD morning is upon u 0 01 1 89_
This is an extension method. To create an extension method, use the "this" keyword as the first parameter in a static
method (in a static
class
).
Here we implemented a Slice method. An extension method makes the syntax clearer—slice is useful enough to justify an extension method.