C# String is a widely used data type in the C# programming language. It is one of the fundamental data types in C# and is used extensively in many applications. In this article, we will discuss various aspects of the C# string data type. Including its properties, methods, operations, and examples.

Table of Contents
C# String
In C#, a string is a sequence of characters. For example, "hello"
is a string containing a sequence of characters 'h'
, 'e'
, 'l'
, 'l'
, and 'o'
.
We use the string
keyword to create a string. For example,
// create a string string language = "C# Programming";
Here, we have created a string
named language
and assigned the text "C# Programming"
. We use double quotes to represent strings in C#.
C# String Operations
C# string provides various methods to perform different operations on strings. These operations can range from basic string manipulations to advanced operations like pattern matching, formatting, and comparison. Here, we will look into some of the commonly used string operations.
1. Length
The Length property of a string returns the number of characters in the string.
string str = "Hello World!"; int len = str.Length; Console.WriteLine(len); // Output: 12
2. IsNullOrEmpty
IsNullOrEmpty
is a static method of the string
class in C#. It is used to check whether a string is null or empty. It takes a string as input and returns a boolean value indicating whether the input string is null or empty.
The method returns true
if the input string is null
or empty, otherwise it returns false
.
string str1 = null; string str2 = ""; bool b1 = string.IsNullOrEmpty(str1); bool b2 = string.IsNullOrEmpty(str2); Console.WriteLine(b1); // Output: True Console.WriteLine(b2); // Output: True
3. IsNullOrWhiteSpace
IsNullOrWhiteSpace
is another static method of the string
class in C#. It is used to check whether a string is null, empty, or consists only of whitespace characters. It takes a string as input and returns a boolean value indicating whether the input string is null, empty, or whitespace-only.
The method returns true
if the input string is null
, empty, or whitespace-only, otherwise it returns false
.
string str1 = null; string str2 = ""; string str3 = " "; string str4 = "Hello World"; bool result1 = string.IsNullOrWhiteSpace(str1); // true bool result2 = string.IsNullOrWhiteSpace(str2); // true bool result3 = string.IsNullOrWhiteSpace(str3); // true bool result4 = string.IsNullOrWhiteSpace(str4); // false
The IsNullOrWhiteSpace
method is useful when dealing with user input or file input/output. Where the input may contain unwanted whitespace characters or may not be in the expected format. It helps to ensure that the input is valid before performing operations on it.
4. Equals
String comparison is the process of comparing two strings to determine whether they are equal or not. In C#, the Equals()
method can be used for string comparison.
string str1 = "Hello"; string str2 = "World"; bool isEqual = str1.Equals(str2); // false
4. Concat
String concatenation is the process of combining two or more strings into a single string. In C#, the +
operator can be used for string concatenation.
string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // John Doe
5. Replace
String replacement is the process of replacing one or more occurrences of a substring with another substring. In C#, the Replace()
method can be used for string replacement.
string input = "The quick brown fox jumps over the lazy dog."; string output = input.Replace("fox", "cat"); // Output: The quick brown cat jumps over the lazy dog.
6. ToLower and ToUpper
The ToLower and ToUpper methods of a C# string are used to convert the string to lowercase or uppercase, respectively.
string str = "Hello World!"; string lowerStr = str.ToLower(); string upperStr = str.ToUpper(); Console.WriteLine(lowerStr); // Output: hello world! Console.WriteLine(upperStr); // Output: HELLO WORLD!
7. TrimStart, TrimEnd, and Trim
The TrimStart, TrimEnd, and Trim methods of a C# string are used to remove leading, trailing, or both leading and trailing whitespace characters from the string, respectively.
string str = " Hello World! "; string trimStartStr = str.TrimStart(); string trimEndStr = str.TrimEnd(); string trimStr = str.Trim(); Console.WriteLine(trimStartStr); // Output: Hello World! Console.WriteLine(trimEndStr); // Output: Hello World! Console.WriteLine(trimStr); // Output: Hello World!
8. PadLeft and PadRight
The PadLeft and PadRight methods of a C# string are used to add padding to the left or right of the string to a specified length.
string str = "Hello"; string padLeftStr = str.PadLeft(10, '*'); string padRightStr = str.PadRight(10, '*'); Console.WriteLine(padLeftStr); // Output: *****Hello Console.WriteLine(padRightStr); // Output: Hello*****
9. StartsWith, EndsWith, and Contains
The StartsWith, EndsWith, and Contains methods of a C# string are used to check whether the string starts with, ends with, or contains a specified substring, respectively.
string str = "Hello World!"; bool startsWith = str.StartsWith("Hello"); bool endsWith = str.EndsWith("World!"); bool contains = str.Contains("llo"); Console.WriteLine(startsWith); // Output: True Console.WriteLine(endsWith); // Output: True Console.WriteLine(contains); // Output: True
10. IndexOf and LastIndexOf
The IndexOf and LastIndexOf methods of a C# string are used to find the index of the first or last occurrence of a specified substring in the string, respectively.
string str = "Hello World"; int index1 = str.IndexOf("o"); // returns 4 int index2 = str.IndexOf("o", 5); // returns 7 int index3 = str.IndexOf("z"); // returns -1 int index1 = str.LastIndexOf("o"); // returns 7 int index2 = str.LastIndexOf("o", 5); // returns 4 int index3 = str.LastIndexOf("z"); // returns -1
11. C# string format
The C# String formatting is the process of converting a value into a string representation with a specified format. In C#, the String.Format()
method can be used for string formatting.
int age = 25; string message = String.Format("My age is {0}", age); // My age is 25
12. C# string split
The C# String splitting is the process of dividing a string into an array of substrings based on a specified delimiter. In C#, the Split()
method can be used for string splitting.
string input = "apple,banana,cherry"; string[] output = input.Split(','); // ["apple", "banana", "cherry"]
13. C# substring
The C# Substring is a part of a string that is contained within another string. In C#, the Substring()
method can be used for extracting a substring from a string.
string input = "Hello World"; string output = input.Substring(6, 5); // World
Summarized table for all the common operations in C# String
Here is a table of some of the most commonly used C# string operations, along with their keywords and descriptions:
Operation | Keyword | Description |
---|---|---|
Concatenation | + , Concat | Combines two or more strings into a single string |
Formatting | $ , string.Format , StringBuilder.AppendFormat | Inserts variable values into a string using placeholders |
Comparison | == , != , String.Compare | Compares two strings to see if they are equal or different |
Length | Length | Returns the number of characters in a string |
Substring | Substring | Returns a specified portion of a string |
ToUpper | ToUpper | Converts all characters in a string to uppercase |
ToLower | ToLower | Converts all characters in a string to lowercase |
Trim | Trim , TrimStart , TrimEnd | Removes whitespace from the beginning and/or end of a string |
Replace | Replace | Replaces all occurrences of a specified string or character with another string or character |
Split | Split | Splits a string into an array of substrings based on a specified delimiter |
IndexOf | IndexOf | Returns the position of the first occurrence of a specified character or substring in a string |
LastIndexOf | LastIndexOf | Returns the position of the last occurrence of a specified character or substring in a string |
Contains | Contains | Returns a Boolean value indicating whether a specified character or substring is present in a string |
StartsWith | StartsWith | Returns a Boolean value indicating whether a string starts with a specified character or substring |
EndsWith | EndsWith | Returns a Boolean value indicating whether a string ends with a specified character or substring |
Insert | Insert | Inserts a string or character into a specified position within another string |
PadLeft | PadLeft | Pads a string with a specified character or whitespace on the left until it reaches a specified length |
PadRight | PadRight | Pads a string with a specified character or whitespace on the right until it reaches a specified length |
Remove | Remove | Removes a specified number of characters from a string starting at a specified position |
Reverse | Reverse | Reverses the characters in a string |
CompareTo | CompareTo | Compares two strings and returns a value indicating their relative order |
Clone | Clone | Creates a new instance of a string with the same value as the original |
Copy | Copy | Copies a specified number of characters from a string to a character array |
ToCharArray | ToCharArray | Converts a string to a character array |
GetHashCode | GetHashCode | Returns a hash code for the string |
GetType | GetType | Gets the Type of the current instance |
ToString | ToString | Returns the string itself |
This list does not include every single string operation available in C#. it does encompass a majority of the commonly used ones. By becoming familiar with these operations, you can confidently tackle a broad array of string manipulation tasks in your C# projects.
Here are our detailed on “Best way to Implement JWT Authentication C# .NET Core Web API“
Most common question about C# String
How to convert string to int C#?
1. int.Parse
: You can convert a string to an integer using the int.Parse
method. The int.Parse
method throws an exception if the input string is not a valid integer.
Here’s an example using the int.Parse
method:
string str = "123"; int num = int.Parse(str); // num is now 123
2. int.TryParse
: You can convert a string to an integer using the int.TryParse
method. The int.
method does not throws an exception if the input string is not a valid integer. It returns a boolean value indicating whether the conversion was successful or not, without throwing an exception.TryParse
Here’s an example using the int.TryParse
method:
string str = "123"; int num; bool success = int.TryParse(str, out num); // success is true, num is now 123 string str2 = "abc"; int num2; bool success2 = int.TryParse(str2, out num2); // success2 is false, num2 is 0
3. Convert.ToInt32
: The Convert.ToInt32
is a method in C# that can be used to convert a value of any data type to an integer. It returns the integer representation of the input value.
The Convert.ToInt32
method can convert values of various data types, including bool
, byte
, char
, decimal
, double
, float
, int
, long
, sbyte
, short
, string
, uint
, ulong
, and ushort
.
Here’s an example that uses the Convert.ToInt32
method to convert a string to an integer:
string str = "123"; int num = Convert.ToInt32(str); // num is now 123
Note that if the input value cannot be converted to an integer, the Convert.ToInt32
method will throw an exception. Therefore, it is important to ensure that the input value is a valid integer before using this method.
How to convert string to byte array?
You can convert string to byte array using the Encoding
class.
Here’s an example that uses the Encoding.ASCII.GetBytes
method to convert a string to a byte array:
string str = "Hello, world!"; byte[] byteArray = Encoding.ASCII.GetBytes(str);
You can also use other character encodings, such as UTF-8 or Unicode, by using the corresponding Encoding
class methods. For example:
string str = "Hello, world!"; byte[] utf8ByteArray = Encoding.UTF8.GetBytes(str); byte[] unicodeByteArray = Encoding.Unicode.GetBytes(str);
Note that the size of the resulting byte array depends on the character encoding used.
For example, UTF-8 encoding uses a variable-length encoding scheme. This means that each character may be represented by one or more bytes.
The ASCII encoding uses a fixed-length encoding scheme, which means that each character is represented by one byte. Therefore, the resulting byte arrays may have different sizes depending on the encoding used.
What is C# StringBuilder?
The StringBuilder
is a class in the System.Text
namespace. That provides a more efficient way to manipulate strings when compared to the standard string type.
The StringBuilder
class is designed to allow for efficient appending and manipulation of strings. Particularly when you are dealing with large strings or when you need to perform multiple operations on a string.
This is because the string
type is immutable, meaning that once a string is created, it cannot be modified. Every time you need to make a change to a string, a new string object is created in memory. This can result in inefficient memory usage and slow performance when you need to make multiple changes to a string.
The StringBuilder
class is a mutable string object that can be modified without creating a new object in memory each time. The StringBuilder
class achieves this by internally maintaining a resizable buffer that can hold the string data. This buffer can be expanded or contracted as necessary to accommodate the changes being made to the string.
StringBuilder sb = new StringBuilder(); sb.Append("Hello, "); sb.Append("world!"); string result = sb.ToString(); // result is "Hello, world!"
The StringBuilder
class provides a number of other methods for manipulating strings, such as Insert
, Replace
, and Remove
. These methods allow you to perform various operations on the string without having to create new string objects in memory.
What is C# string interpolation?
The C# string interpolation is a feature that simplifies the process of building formatted strings. It provides a more readable and convenient way to embed variables and expressions within a string.
C# string interpolation uses the $
character to prefix the string and curly braces {}
to surround the variables and expressions to be inserted.
string name = "Alice"; int age = 25; string message = $"My name is {name} and I am {age} years old.";
C# string interpolation provides several advantages over other methods of building formatted strings. Instead of using the String.Format
method or concatenating strings with the +
operator. Some of these advantages include:
- Readability: It easier to read and understand the code because it provides a more natural and readable syntax for building strings.
- Type safety: It provides type safety because the variables and expressions are automatically converted to strings before being inserted into the string.
- Performance: It is more efficient than concatenating strings with the
+
operator because it generates less garbage, which can result in better performance.
Here are our detailed on “How to Add Swagger to Web API .NET 7“
Conclusion
In conclusion, C# string is a powerful and versatile data type that provides a wide range of features for manipulating and processing text. It is used extensively in C# programming and is an essential part of the .NET.
In this article, we have covered a variety of topics related to the C# string. We started with an introduction to C# string, its basic syntax, and how to declare and initialize a string variable. We then explore some of the common string operations in C#. Including string Length, ToUpper, ToLower, Trim, Replace, and Substring. These properties and methods provide powerful tools for manipulating and processing strings in C#.
Additionally, we explored some of the advanced features of C# string, such as string builders, and string interpolation.
Overall, C# string is an essential data type for any C# developer to master. Its versatility and power make it an indispensable tool for working with text in C#.
Thank you for reading, and happy coding!