Удалите пробелы, затем отсортируйте их по символам в нижнем регистре, а затем по тому, является ли символ строчными:
string s = "This Is Just A Game";
string result = string.Concat(
s.Replace(" ", "")
.OrderBy(char.ToLower)
.ThenBy(char.IsLower));
Console.WriteLine(result);
.ThenBy(char.IsLower)
работает, потому что false < true
, поэтому символы в верхнем регистре (для которых char.IsLower()
возвращает false
) будут отсортированы до символов нижнего регистра (для которых char.IsLower()
возвращает true
).