Reversing Arrays, Array.Reverse()
本文关键字:Reverse Array Arrays Reversing | 更新日期: 2023-09-27 18:35:40
我有以下代码来反转字符串:
Console.Title = "*****Reverse a String*****";
Console.WriteLine("*****Reverse a String*****");
Console.WriteLine("=> Enter the text to be reversed:");
string input = Console.ReadLine();
Console.WriteLine("=> Reversing...");
char[] arrInput = input.ToCharArray();
Array.Reverse(arrInput);
String final = new String(arrInput);
Console.WriteLine("=> {0}", final);
Console.WriteLine("=> Press any key to terminate.");
Console.ReadKey();
Array.Reverse(arrInput) 有效,但 arrInput.Reverse() 不起作用!有什么指示吗?
arrInput.Reverse
使用 LINQ Reverse
方法,该方法不会更改原始集合。您需要致电ToArray
var reversed = arrInput.Reverse().ToArray();
arrInput.Reverse() 返回一个可枚举的:
IEnumerable<char> inputEnumerable = arrInput.Reverse();
同样正如 Selman22 指出的那样,Reverse()
将返回一个 IEnumerable 而不是数组,因此如果您想使用原始变量,您还必须添加 ToArray()
:
arrInput = arrInput.Reverse().ToArray();
您不必显式创建数组即可使用 Reverse
方法;您可以这样做:
// Get string from user as you're already doing
string input = Console.ReadLine();
// Reverse it and assign to new string
string reversed = new string(input.Reverse().ToArray());
换句话说,此代码:
string input = Console.ReadLine();
Console.WriteLine("=> Reversing...");
char[] arrInput = input.ToCharArray();
Array.Reverse(arrInput);
String final = new String(arrInput);
可以简化为:
string input = Console.ReadLine();
Console.WriteLine("=> Reversing...");
String final = new String(input.Reverse().ToArray());