将字符串转换为char数组?

时间:2017-12-23 18:21:29

标签: c# string chars

有人可以解释一下为什么会这样吗?

class Program
{
    static char[] ch = new char[2];
    static string name = "Ivankata";

    static void Main(string[] args)
    {
        inputChar();
    }

    static void inputChar()
    {
        ch = name.ToCharArray();
        Console.WriteLine(ch);
    }
}

我名为ch的char数组只接受2个字符但是当我将字符串“Ivankata”转换为char数组时,它会以某种方式工作吗?它不应该削减剩余的“ankata”并仅显示“iv”吗?谁能解释一下这里发生了什么?

3 个答案:

答案 0 :(得分:2)

  

它不应该削减剩余的“ankata”并仅显示“iv”吗?

不,它不是那样的。您可以在一个简单的循环中将项目分配给数组。

for (int i = 0; i < ch.Length; i++)
{
    ch[i] = name[i];
}
Console.WriteLine(ch);

答案 1 :(得分:1)

string.ToCharArray()创建一个新的char数组,并将引用存储在ch中的新数组中。长度为2的旧数组不再被引用,很快就会被垃圾收集器收集。

答案 2 :(得分:-1)

你正在做的是你正在制作一个只包含两个索引的数组。其他将由垃圾收集器处理