①Cannot implicitly convert type 'string' to 'char[]'

②Cannot implicitly convert type 'char' to 'string'

③Cannot implicitly convert type 'char[]' to 'string'

④Cannot implicitly convert type 'string[]' to 'char[][]'

'string' to 'char[]'

不能直接赋值,而是需要使用ToCharArray()

'char' to 'string'

不能直接赋值,而是需要使用ToString()

'char[]' to 'string'

不能直接赋值,本应该使用ToString()

但c#不支持'char[]' to 'string'

如此使用,string将返回 System.Char[]

这应该是一个bug

只能自己手动实现

string CharArrayToString(char[] s)
    string str = "";
    foreach (char c in s)
        char temp = c;
        str = str + temp.ToString();
    return str;

【注】后来发现有一种更简单的方法

char[] charArray = {'a','b'};
print(new string(charArray));

【语法解释】

new是创建对象

string是要创建的对象的类型

(charArray)是在向构造函数传递参数

构造函数是 public String(char[] value);

这样就将char[]数组转换为了string

④ 'string[]' to 'char[][]'

不能直接赋值,也没有ToStringArray()方法

只能自己手动实现

    char[][] StringArrayToCharJaggedArray(string[] words)
        char[][] word=new char[words.Length][];
        for(int i=0;i<words.Length;i++)
            word[i]=new char[words[i].Length];
            word[i]=words[i].ToCharArray();
        return word;

字符串是只读类型,一经初始化,不可对原字符串修改

如可修改,也只是借用了StringBuilder或其他方法,重新创建了一个对象,在背后进行了处理、

如果对字符串中的字符进行修改,会报错

Property or indexer 'string.this[int]' cannot be assigned to -- it is read only

int i; MessageBox.Show(i);  //这时会提示错误无法从“int”转换为“string”,那是因为messagebox的参数只能是“string类型,所以要对i进行转换,成为string类型 MessageBox.Show(i.tostring);  //这时会提示错误无法从“方法组”转换为“String”,那是因为tostring是个方法,要在tostring后面加 1. 字符串变成char数组,字符数组变成字符串    *.string可以看作char的只读数组。String是字符串,char是字符数组,举例: 字符串大小写转换 忽略字符串大小写 需要注意的是,在转换过程中,会创建新的对象并分配新的内存,因此如果在处理大量数据时,需要谨慎使用这些转换操作。之间的相互转换来实现字符串和字符数组之间的转换。在 C# 中,可以通过。 1.string转换char[]:char[] string.ToCharArray();  static void Main(string[] args) string str = "abcdef"; char[] chs = str.ToCharArray();//字符串可以看做是只读的字符数组,将其变为真正的字符数组后,即可对其进行编辑 Console.WriteLine(chs[2]); string str = "hello world"; const char *p = str.data(); //加const 或用 char *p = (char*)str.data(); 的形式... char数组要转换string可没想象的那么容易。需要使用到System.Text.StringBuilder!实例如下:char[] temp={a,b,c};System.Text.StringBuilder sb = new System.Text.StringBuilder();sb.Append(temp);string target=sb.ToString();反过来就比较容 static void Main() byte[] array = UTF8Encoding.UTF8.GetBytes(Console.ReadLine());//将获取到的字符串转换为字符数组 foreach (byte b in array) Console.Write("0