String slice. A 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.
Slice notes. 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.
Input and output. 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
Example. 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.
And The second parameter can be any integer. When it is negative, it means you start from the end and then count backwards.
Note In JavaScript you can omit the second parameter. To duplicate this, create an overload that uses Length-1 as the second parameter.
Info The first character of the second test shows the first character as a space.
Detail My interpretation is that this is correct—the space is at index 3, while "m" is index 4.
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_
Extension notes. 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).
Summary. Here we implemented a Slice method. An extension method makes the syntax clearer—slice is useful enough to justify an extension method.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.