public static void Main()
s=>string.Concat(s.Reverse().Select((c,i)=>s[i]>96?char.ToLower(c):char.ToUpper(c)));
Func<string, string> bonus =
s=>string.Concat(s.Reverse().Select((c,i)=>(char)(s[i]>96?c|32:c&~32)));
Func<string, string> f2 =
s=>string.Concat(s.Reverse().Select((c,i)=>s[i]>96?char.ToLower(c):char.ToUpper(c)));
Console.WriteLine(f("Hello, Midnightas"));
Console.WriteLine(f2("Hello, Midnightas"));
Console.WriteLine(f("AlOiS"));
Console.WriteLine(f2("AlOiS"));
Console.WriteLine(f("AlOiS-c[o_O]p"));
Console.WriteLine(f2("AlOiS-c[o_O]p"));