In C#, substring methods are invaluable for extracting specific portions of strings, manipulating text data, and performing various operations on substrings. Substring methods allow you to work with substrings based on their start and end positions or by specifying a length. This blog will explain the various substring methods available in C#, their usage, and practical examples to demonstrate their functionality.

Using Substring Method

The Substring method in C# is a widely used string method that allows you to extract a substring from a given string. It has multiple overloads to cater to different scenarios. Here’s the basic syntax:

string result = originalString.Substring(startIndex);
string result = originalString.Substring(startIndex, length);
  • startIndex: The position where the substring extraction begins. It is a zero-based index, meaning the first character has an index of 0.
  • length: (Optional) The number of characters to include in the substring. If not specified, the method will extract all characters from the start index to the end of the string.

Let’s look at some examples:

string originalString = "Hello, World!";
string result1 = originalString.Substring(0); // "Hello, World!"
string result2 = originalString.Substring(7); // "World!"
string result3 = originalString.Substring(0, 5); // "Hello"

In the first example, we extract the entire string since the startIndex is 0. In the second example, the startIndex is 7, so the substring begins from the 7th character (“W”) and continues to the end of the string. In the third example, we specify a length of 5, resulting in a substring of the first five characters (“Hello”).

Substring and Index Calculation

Remember that the startIndex is zero-based, so the index of the last character is always one less than the length of the string. If the startIndex is equal to or greater than the length of the string, Substring will return an empty string:

string originalString = "Hello, World!";
string result4 = originalString.Substring(originalString.Length); // ""
string result5 = originalString.Substring(50); // ""

In both examples above, the startIndex is beyond the length of the string, so the method returns an empty string.

Working with Ranges using Substring

C# 8.0 introduced a new overload of Substring that uses range notation, making it more convenient to work with substrings. Range notation uses the .. operator to specify a range of characters. It’s essential to enable C# 8.0 features for this to work in your project.

string originalString = "Hello, World!";
string result6 = originalString[0..5]; // "Hello"
string result7 = originalString[7..]; // "World!"

The first example extracts the substring from index 0 to 4 (inclusive), while the second example starts from index 7 and continues until the end of the string.

Substring for String Manipulation

Besides extracting substrings, Substring is handy for modifying strings. Since strings are immutable in C#, you cannot directly change a single character within a string. However, you can create a new string with a modified substring and reassign it to the original variable:

string originalString = "Hello, World!";
string modifiedString = originalString.Substring(0, 5) + " Univer" + originalString.Substring(7);
Console.WriteLine(modifiedString); // "Hello Universe!"

In this example, we modified the substring “World” to “Universe” and created a new string modifiedString.

Remove Method

If you want to remove a specific portion of the string and return the modified version, you can use the Remove method. It is an alternative to Substring for string manipulation:

string originalString = "Hello, Universe!";
string modifiedString = originalString.Remove(7, 9);
Console.WriteLine(modifiedString); // "Hello, !"

In this example, we removed the substring starting from index 7 and having a length of 9 characters.

Split Method for Substrings

The Split method is useful for breaking a string into substrings based on a specified delimiter. It returns an array of substrings split from the original string:

string originalString = "apple,orange,banana";
string[] fruits = originalString.Split(',');
foreach (string fruit in fruits)

The output will be:


Here, the original string was split at each comma (,), and the resulting substrings were stored in the fruits array.


In C#, the Substring methods provide powerful tools for extracting and manipulating portions of strings. The Substring and Remove methods offer perfect solutions, whether you need to extract specific characters or modify substrings. Additionally, the Split method allows you to break strings into substrings based on delimiters. Understanding these methods and their various applications will enhance your text-processing capabilities in C#.

More C# / .NET Tutorials Here!

Categorized in: