C# 反向数组,Array.Reverse()

C# 反向数组,Array.Reverse(),c#,C#,我有以下代码来反转字符串: 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[]

我有以下代码来反转字符串:

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()返回可枚举的:

IEnumerable<char> inputEnumerable = arrInput.Reverse();
arrInput.Reverse()返回一个可枚举项:

IEnumerable<char> inputEnumerable = arrInput.Reverse();

arrinport.Reverse
使用LINQ
Reverse
方法,该方法不会更改原始集合。你需要在上面调用
ToArray

var reversed = arrInput.Reverse().ToArray();

arrinport.Reverse
使用LINQ
Reverse
方法,该方法不会更改原始集合。你需要在上面调用
ToArray

var reversed = 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());

使用
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());

@塞尔曼说得好,我在想这个数组可以容纳一个IEnumerablereason@Selman22说得好,我想这个数组可以容纳一个IEnumerable,因为某些原因,谢谢!当它允许我的时候,我会选择它作为答案!谢谢当它允许我的时候,我会选择它作为答案!.ToArray()是否会使其成为一个数组,而当反转为字符串时,该数组将使其成为一个数组?@LukeParker不是真的<首先调用code>Reverse,返回IEnumerable。需要调用ToArray()将
IEnumerable
转换为
string
构造函数的
Array
类型。但是您可以对字符串调用
Reverse
,而无需将其转换为数组,例如:
var reversed=“some string”。Reverse()。正如您可以使用索引从字符串中获取字符而无需将其显式转换为数组一样:
char fourthCharacter=“someString”[3]
更新了如何删除显式数组声明的答案,希望能有所帮助。ToArray()是否会使其成为一个数组,从而在反转为字符串时使其成为数组?@LukeParker不是真的<首先调用code>Reverse
,返回IEnumerable。需要调用ToArray()将
IEnumerable
转换为
string
构造函数的
Array
类型。但是您可以对字符串调用
Reverse
,而无需将其转换为数组,例如:
var reversed=“some string”。Reverse()。正如您可以使用索引从字符串中获取字符而无需将其显式转换为数组一样:
char fourthCharacter=“someString”[3]更新了如何删除显式数组声明的答案,希望对您有所帮助。