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