C# 为什么这段代码不反转作为变量值给出的名称?

C# 为什么这段代码不反转作为变量值给出的名称?,c#,C#,问题是,当我运行控制台应用程序时,给定的名称Angel Hadzhiev没有反转。输出是这样的-您反转CharName中的字符,但将myName中未反转的字符写入控制台,并且包含原始顺序。您的循环应该如下所示: string myName = "Angel Hadzhiev"; char[] CharName = myName.ToCharArray(); Array.Reverse(CharName); foreach (char name

问题是,当我运行控制台应用程序时,给定的名称Angel Hadzhiev没有反转。输出是这样的-

您反转CharName中的字符,但将myName中未反转的字符写入控制台,并且包含原始顺序。您的循环应该如下所示:

  string myName = "Angel Hadzhiev";
        char[] CharName = myName.ToCharArray();
        Array.Reverse(CharName);
        foreach (char name in myName)
        {
            Console.WriteLine(name);
        }

        Console.ReadLine();

您犯了一个简单的错误,在foeach循环中,您使用的是旧数组,而不是反向数组


可以使用字符串构造函数将字符数组重新连接到字符串中:string newString=new StringCharName;非常感谢。这是成功的,但是你能告诉我为什么它是垂直显示而不是水平显示的吗?因为你使用的是WriteLine,它会在每个字符的输出中添加新行字符。如果你使用Write,它应该水平输出,因为这将只输出字符,而不添加换行符。我知道了。非常感谢。你应该提到这个数组。反向。@DourHighArch-如果你是在讨论这个问题的第二个答案所考虑的特殊情况,那么是的,OP的方法会有一些潜在字符串的问题。谢谢你的回答。
    foreach (char name in CharName)
    {
        Console.WriteLine(name);
    }
public static void Main(string[] args)
    {
        string myName = "Angel Hadzhiev";
        char[] CharName = myName.ToCharArray();
        Array.Reverse(CharName);
        foreach (char name in CharName)
        {
            Console.WriteLine(name);
        }
    }