C#

Добавить символ в конце введённой строки, если количество символов нечётное, на C#

Делаю программу, которая меняет местами каждые два символа, и если количество введенных символов нечетное, то нужно добавить '*' в конце строки. проблема с добавлением символа, помогите пожалуйста
А)
Артём )))
315
да нормально написано, прям как учат в универе: максимально просто, максимально многословно... а придраться всегда к чему-то можно, например:

1)
.ToArray() для строк вполне можно использовать, но .ToCharArray() работает раз так в 10-15 быстрее. в этой задаче не критично, но знать стоит.

2)
for (int i = 0; i < s.Length - 1; i += 2) это правильно, но s.Length - 1 будет вычисляться при каждой итерации... Да, это мелочь, но оно тебе надо? лучше вынести в отдельную переменную перед циклом или перестроить цикл, например так:
for (int i = 1; i < s.Length; i += 2)

3)
обмен значений правильный, тут по большей части вкусовщина... можно через создании временной переменной сделать, можно через сложение/вычитание, можно вообще через xor, но все это 5 строк... мне больше нравится в 1 через кортежи:
(s[i - 1], s[i]) = (s[i], s[i - 1])

4)
s.Length % 2 == 0 прям как по учебнику), но раз уж придираться, то почему бы деление на заменить на проверку последнего бита на нечетность, например так: (s.Length & 0) == 1

ну и получим что-то вроде такого:
var s = Console.ReadLine().ToCharArray();
for (int i = 1; i < s.Length; i += 2) (s[i - 1], s[i]) = (s[i], s[i - 1]);
Console.WriteLine(new string(s) + ((s.Length & 1) == 1 ? "*" : ""));
Вова Иванов
Вова Иванов
2 054
Лучший ответ
Несколько грязновато, но лень напрягаться:

s=new string(s.Append('*').ToArray());

Вообще-то для работы со строками удобно использовать класс StringBuilder - изучи его, юный падаван.