6. Reverse an Array of Strings
Здравейте, някой случайно да е решил тази задачата с Reverse() , защото се помъчих и нещо не доуцелвам синтаксиса.
Здравейте, някой случайно да е решил тази задачата с Reverse() , защото се помъчих и нещо не доуцелвам синтаксиса.
Да, дай твоя код да видим.
Ето моят цикъл за обръщане на масива:
for (int i = 0; i < arrStr.Length / 2; i++)
{
string temp = arrStr[i];
arrStr[i] = arrStr[arrStr.Length - i - 1];
arrStr[arrStr.Length - i - 1] = temp;
}
Само с един ред
Console.WriteLine(string.Join(" ", Console.ReadLine().Split(' ').ToArray().Reverse().ToArray()));
Втория ToArray не е ли излишен? При мен това работи:
Console.WriteLine(string.Join("", Console.ReadLine().ToArray().Reverse()));
По принцип, да. Написах го по навик, защото по принцип записвам резултата в масив и ако не напиша ToArray() този ред не връща обърнат масив, а IEnumerable collection. Тук е излишно, да.
var input = Console.ReadLine().Split(' ').ToArray();
var arr = input;
var reverse = arr.Reverse();
Console.WriteLine(reverse);
Ето и за твоя вариант:
var arr = Console.ReadLine().Split(' ').ToArray();
Console.WriteLine(string.Join(" ", arr.Reverse()));
Още на първия ред имаш вече масив от string. А методът Reverse не връща стойност, а печата IEnumerable от string, затова се ползва направо при печатане.
Благодаря, аз също намерих начин може би малко по сложен с лист:
var array = Console.ReadLine().Split(' ').ToArray();
List<string> reverseList = new List<string>(array);
reverseList.Reverse();
Console.WriteLine(string.Join(" ", reverseList));