Ordenar un String Alfabéticamente C#

publicado por: Anonymous

Mi consulta es la siguiente:

¿Como ordeno un string Alfabéticamente en C#?

Ejemplo:

Entrada

hola so

Salida

ahloos

Código:

string cadena;

Console.WriteLine("Ingrese la cadena: ");
cadena = Console.ReadLine();

ORDENAMIENTO(linea);

Intenté hacerlo por método burbuja pero el string(linea) no me deja sobreescribir(set) el caracter (ERROR cadena[i] = cadena[i+1]), es sólo de escritura y no sé como implementar la propiedad para poder escribir sobre el string.

Cualquier ayuda/comentario es de gran ayuda.

Un saludo.

solución

Solución usando el método OrderBy de Linq:

string cadena;

Console.WriteLine("Ingrese la cadena: ");
cadena = Console.ReadLine();
string ordenado = new String(cadena.OrderBy(x => x).ToArray());

Para aclarar algo mas lo que preguntas (por si quieres ordenarlo manualmente), efectivamente no se puede acceder a las posiciones de un string en modo escritura. En ese caso lo que puedes hacer es convertir tu string en un array de caracteres, ordenarlo como quieras, y posteriormente convertirlo a string de nuevo:

char[] cadenaArray = cadena.ToArray();
//Ahora puedes ordenar usando cadenaArray, podrás hacer cadenaArray[i] = cadenaArray[i+1]
//Cuando esté ordenado, lo conviertes en cadena usando el constructor de String
string ordenado = new String(cadenaArray);
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *