convert (single) char to string

Z

Zytan

I am surprised that a single character string is not auto-created from
a single char. It is hard to find information on converting a char
into a string, since most people ask how to convert char[] to string.
I have a function that accepts a string, and I wish to access this
function for each character in the string, individually. The only
solution I have found is:

char c = 'A';
string s = System.Text.Encoding.ASCII.GetString(c);

But, using the Encoding functions??? This seems so wrong, since it
doesn't have to convert anything. I could get demons from this, since
it could change the underlying 16-bit value stored within the char.
ASCII isn't good enough. Default uses the default code page, whatever
that may be. What can I do to ensure 100% that it stays the same?

Debug.Assert(s[0] == c);

Zytan
 
Z

Zytan

I think the answer that works 100% of the time is:

char c = 'A';
string s = c.ToString();
Debug.Assert(s[0] == c);

Zytan
 
P

Pete

Zytan said:
I am surprised that a single character string is not auto-created from
a single char. It is hard to find information on converting a char
into a string, since most people ask how to convert char[] to string.
I have a function that accepts a string, and I wish to access this
function for each character in the string, individually. The only
solution I have found is:

char c = 'A';
string s = System.Text.Encoding.ASCII.GetString(c);

how about:

char c = 'A';
string s = c.ToString();

?
 
?

=?ISO-8859-1?Q?G=F6ran_Andersson?=

Zytan said:
I am surprised that a single character string is not auto-created from
a single char. It is hard to find information on converting a char
into a string, since most people ask how to convert char[] to string.
I have a function that accepts a string, and I wish to access this
function for each character in the string, individually. The only
solution I have found is:

char c = 'A';
string s = System.Text.Encoding.ASCII.GetString(c);

But, using the Encoding functions??? This seems so wrong, since it
doesn't have to convert anything. I could get demons from this, since
it could change the underlying 16-bit value stored within the char.
ASCII isn't good enough. Default uses the default code page, whatever
that may be. What can I do to ensure 100% that it stays the same?

Debug.Assert(s[0] == c);

Zytan

Using encoding to convert a char to a string is not correct. Then you
will be converting the char into a byte and treating that byte as if it
was encoded data that you can decode into a string.

There are several ways of turning a char into a string:

char c = 'A';

string s1 = new String(c, 1);
string s2 = new String(new char[] { c });
string s3 = c.ToString();
 
Z

Zytan

Using encoding to convert a char to a string is not correct. Then you
will be converting the char into a byte and treating that byte as if it
was encoded data that you can decode into a string.

That's what I thought.
There are several ways of turning a char into a string:

char c = 'A';

string s1 = new String(c, 1);
string s2 = new String(new char[] { c });
string s3 = c.ToString();

Ok, thanks

Zytan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top