Tengo esto List<string>
:
IList<string> ListaServizi = new List<string>();
¿Cómo puedo ordenarlo alfabéticamente y ascendente?
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
IList<string>
. Este código realmente funcionaría como está escrito, a diferencia de las respuestas que recibieron más votos a favor con ListaServizi.Sort()
. No digo que esta sea la solución que elegiría, pero en realidad fue la única respuesta correcta cuando publiqué mi respuesta.
.Sort
, entonces ¿por qué no hacerlo?
List
. Y el costo asociado con esta respuesta no es trivial y también innecesario. Literalmente no gana nada . Agrega complejidad al código, es menos conciso, es menos eficiente, literalmente no hay nada más que desventajas aquí.
Otras respuestas son correctas para sugerir Sort
, pero parecen haber pasado por alto el hecho de que la ubicación de almacenamiento se escribe como IList<string
. Sort
no es parte de la interfaz.
Si sabe que ListaServizi
siempre contendrá un List<string>
, puede cambiar su tipo declarado o usar un molde. Si no está seguro, puede probar el tipo:
if (typeof(List<string>).IsAssignableFrom(ListaServizi.GetType()))
((List<string>)ListaServizi).Sort();
else
{
//... some other solution; there are a few to choose from.
}
Quizás más idiomático:
List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
typeCheck.Sort();
else
{
//... some other solution; there are a few to choose from.
}
Si sabe que ListaServizi
a veces tendrá una implementación diferente de IList<string>
, deje un comentario y agregaré una sugerencia o dos para ordenarlo.
ListaServizi.Sort();
Hará eso por ti. Es bastante sencillo con una lista de cadenas. Necesita ser un poco más inteligente al clasificar objetos.
ListaServizi
es IList<string>
; la interfaz no tiene un Sort
método. Al menos necesitas un yeso aquí.
List<string> myCollection = new List<string>()
{
"Bob", "Bob","Alex", "Abdi", "Abdi", "Bob", "Alex", "Bob","Abdi"
};
myCollection.Sort();
foreach (var name in myCollection.Distinct())
{
Console.WriteLine(name + " " + myCollection.Count(x=> x == name));
}
salida: Abdi 3 Alex 2 Bob 4
.Sort
msdn.microsoft.com/en-us/library/b0zbh7b6%28v=vs.90%29.aspx ?