C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Next: It uses a for-loop to get each character in the array, finally writing it to the Console.
ForConsoleC# program that uses ToCharArray
using System;
class Program
{
static void Main()
{
// Input string.
string value = "The Dev Codes";
// Use ToCharArray to convert string to array.
char[] array = value.ToCharArray();
// Loop through array.
for (int i = 0; i < array.Length; i++)
{
// Get character from array.
char letter = array[i];
// Display each letter.
Console.Write("Letter: ");
Console.WriteLine(letter);
}
}
}
Output
Letter: D
Letter: o
Letter: t
Letter:
Letter: N
Letter: e
Letter: t
Letter:
Letter: P
Letter: e
Letter: r
Letter: l
Letter: s
Version 1: This uses ToCharArray. We make sure the resulting string has a correct first character each time.
Version 2: We allocate a char array of the required length, and then copy each character in from the source string.
Result: ToCharArray is faster on a 300-char string. But if we try a smaller string, ToCharArray may be slower—make sure to test.
C# program that times ToCharArray
using System;
using System.Diagnostics;
class Program
{
const int _max = 2000000;
static void Main()
{
// Create 500-char string.
string text = new string('P', 500);
// Version 1: use ToCharArray.
var s1 = Stopwatch.StartNew();
for (int i = 0; i < _max; i++)
{
char[] result = text.ToCharArray();
if (result[0] != 'P')
{
return;
}
}
s1.Stop();
// Version 2: copy chars from string with loop.
var s2 = Stopwatch.StartNew();
for (int i = 0; i < _max; i++)
{
char[] result = new char[text.Length];
for (int v = 0; v < text.Length; v++)
{
result[v] = text[v];
}
if (result[0] != 'P')
{
return;
}
}
s2.Stop();
Console.WriteLine(((double)(s1.Elapsed.TotalMilliseconds * 1000000) /
_max).ToString("0.00 ns"));
Console.WriteLine(((double)(s2.Elapsed.TotalMilliseconds * 1000000) /
_max).ToString("0.00 ns"));
}
}
Output
221.32 ns ToCharArray
274.00 ns new char[], for loop
Also: Often you will need to change your char array back to a string. You can use the new string constructor for this.
String ConstructorConvert Char Array, StringAnd: Optimized C++ code is normally faster than doing the same thing in managed code, which has to check array bounds.
Note: ToCharArray makes a complete pass over the string, so if you do not require that, filling character arrays manually may be faster.