C# String Slice, Get Substring Between IndexesDevelop a Slice extension method on the string type. Slice gets a substring between 2 indexes.
A string can be sliced. No Framework method exists. We provide a custom extension method. By slicing a string, we extract the characters from index one to index two. This is essentially the same as calling Substring with 2 index values.Substring
Slice(1,4) Peaceful eac
Slice(3,-2) The morning is upon us. morning is upon u
Info: The first character of the second test, which is similar to the Mozilla test, shows the first character as a space.
Correct: My interpretation is that this is correct. The space is at index 3, while "m" is index 4.
C# program that slices strings
static void Main()
// Tests from Mozilla
Console.WriteLine("The morning is upon us.".Slice(3, -2));
// " morning is upon u"
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
/// Get the string slice between the two indexes.
/// Inclusive for start index, exclusive for end index.
public static string Slice(this string source, int start, int end)
if (end < 0) // Keep this for negative end support
end = source.Length + end;
int len = end - start; // Calculate length
return source.Substring(start, len); // Return Substring of length
morning is upon u
This is an extension method.
It can be used with syntax as though it were on the string class. To create an extension method, simply use the this keyword as the first parameter in a static method, which is in a static class.StaticExtension
An earlier implementation of Slice shown on this article was incorrect when handling the end parameter. The article was corrected based on the changes noted in the array slice article on this site.Array Slice
Here we saw an implementation of the Slice method in the C# programming language. The code here is an extension method, which provides very simple syntax for callers. We used the extension method because it makes the syntax clearer.
However: In some projects it would be better to use a normal static method. But Slice is useful enough to warrant an extension method.
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to email@example.com.