C# Char Combine: Get String From CharsCombine multiple chars into strings in various ways. Get a string from chars.
Char combine. In C# several chars can be concatenated or combined into a string. We test whether the string.Concat method is useful.
Method info. We look at a way you can combine several characters. And we consider the fastest and most elegant ways of merging characters together.
Example. Here we see a method that deals with char arrays and the new string constructor. When you need to build a string char-by-char, you should use a char array for best performance.
Char Array
CharCombine We call this method by passing it 4 chars. We can adapt the code to be used on any number of chars.
Info CharCombine allocates a new char array with 4 elements. Then, it assigns slots at indices 0 to 3 to the four parameter chars.
Finally The new string constructor is invoked in the return statement, which builds the string from the char buffer we created.
String Constructor
C# program that combines four chars
using System; class CharTool { /// <summary> /// Combine four chars. /// </summary> public static string CharCombine(char c0, char c1, char c2, char c3) { // Combine chars into array char[] arr = new char[4]; arr[0] = c0; arr[1] = c1; arr[2] = c2; arr[3] = c3; // Return new string key return new string(arr); } } class Program { static void Main() { char a = 'a'; char b = 'b'; char c = 'c'; char d = 'd'; char e = 'e'; // Use CharCombine method Console.WriteLine(CharTool.CharCombine(a, b, c, d)); Console.WriteLine(CharTool.CharCombine(b, c, d, e)); } }
abcd bcde
Benchmark. The alternative here is the string.Concat method, which you can use with "+" between the 5 chars with ToString(). It is much slower and does unnecessary things.
Varibles used in benchmarks: C#
char a = 'a'; char b = 'b'; char c = 'c'; char d = 'd';
// Custom method string s1 = CharTool.CharCombine(a, b, c, d); // [above] string s2 = CharTool.CharCombine(d, c, b, a); // Concatenation string s1 = a.ToString() + b.ToString() + c.ToString() + d.ToString(); string s2 = d.ToString() + c.ToString() + b.ToString() + a.ToString();
CharCombine method: 520 ms Char concat: 1887 ms
Summary. We allocated a char array as a buffer to store 4 chars. You can easily adapt the method to handle two, three, five, or even more chars, and it will likely perform well.
© 2007-2021 sam allen. see site info on the changelog