C# How to Convert String to Char Array Easily
In C#, you can convert a string to a char array using the
ToCharArray() method like this: char[] chars = yourString.ToCharArray();.Examples
Inputhello
Output['h', 'e', 'l', 'l', 'o']
InputC#
Output['C', '#']
Input
Output[]
How to Think About It
To convert a string to a char array, think of the string as a sequence of letters. You want to split it into individual characters, just like breaking a word into letters. The
ToCharArray() method does this by creating a new array where each element is one character from the string.Algorithm
1
Take the input string.2
Use the built-in method to split the string into characters.3
Store these characters in a new array.4
Return or use the char array as needed.Code
csharp
using System; class Program { static void Main() { string text = "hello"; char[] chars = text.ToCharArray(); Console.WriteLine("Char array: ['" + string.Join("', '", chars) + "']"); } }
Output
Char array: ['h', 'e', 'l', 'l', 'o']
Dry Run
Let's trace the string "hello" through the code.
1
Input string
text = "hello"
2
Convert to char array
chars = ['h', 'e', 'l', 'l', 'o']
3
Print output
Output: Char array: ['h', 'e', 'l', 'l', 'o']
| Step | chars array content |
|---|---|
| After step 2 | ['h', 'e', 'l', 'l', 'o'] |
Why This Works
Step 1: Using ToCharArray()
The ToCharArray() method creates a new array where each element is a character from the string.
Step 2: Array stores characters
Each character in the string becomes an element in the char array, preserving order.
Step 3: Printing the array
Using string.Join helps display the array elements clearly as characters.
Alternative Approaches
Using LINQ ToArray()
csharp
using System; using System.Linq; class Program { static void Main() { string text = "hello"; char[] chars = text.ToArray(); Console.WriteLine("Char array: ['" + string.Join("', '", chars) + "']"); } }
This uses LINQ's <code>ToArray()</code> method, which works similarly but requires <code>using System.Linq;</code>.
Manual loop copy
csharp
using System; class Program { static void Main() { string text = "hello"; char[] chars = new char[text.Length]; for (int i = 0; i < text.Length; i++) { chars[i] = text[i]; } Console.WriteLine("Char array: ['" + string.Join("', '", chars) + "']"); } }
This manually copies each character, useful if you want to process characters during copying but more verbose.
Complexity: O(n) time, O(n) space
Time Complexity
The method processes each character once, so time grows linearly with string length.
Space Complexity
A new array of the same length as the string is created, so space also grows linearly.
Which Approach is Fastest?
ToCharArray() is optimized and simple; manual copying is slower and more code; LINQ ToArray() is similar but adds LINQ overhead.
| Approach | Time | Space | Best For |
|---|---|---|---|
| ToCharArray() | O(n) | O(n) | Simple and fast conversion |
| LINQ ToArray() | O(n) | O(n) | When using LINQ already |
| Manual loop copy | O(n) | O(n) | Custom processing during copy |
Use
ToCharArray() for a quick and easy conversion from string to char array.Beginners sometimes try to cast the string directly to a char array, which is not allowed in C#.