将字符串转换为char数组?

问题描述 投票:-3回答:3

任何人都能解释一下为什么会这样吗?

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”吗?谁能解释一下这里发生了什么?

c# string chars
3个回答
2
投票

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

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

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

1
投票

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.