tengo esta lista:¿Cómo puedo pedir una lista <string>?
IList<string> ListaServizi = new List<string>() { };
cómo puede ordenar que se debe a las cuerdas en su interior? Alfabético y ascendente.
tengo esta lista:¿Cómo puedo pedir una lista <string>?
IList<string> ListaServizi = new List<string>() { };
cómo puede ordenar que se debe a las cuerdas en su interior? Alfabético y ascendente.
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
@Servy una razón para usar OrderBy sería que ListaServizi no tiene un método Sort porque está declarado como 'IList
Si no es la solución que elegiría, ¿por qué proponerla como respuesta? Proponte lo que harías como respuesta; si eso significa cambiar el tipo de IList a List para que pueda llamar '.Sort', ¿por qué no hacer eso? – Servy
@Servy He resuelto el problema sin cambiar la especificación del problema. Esa es la forma preferida, de lejos. Además, el enunciado del problema utiliza la interfaz sobre el patrón de implementación, que es muy importante. Proponer el cambio al tipo de lista es correcto, pero se debe hacer como una respuesta alternativa, después de la correcta, porque requiere cambiar el problema. –
Puede utilizar Sort
List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
ListaServizi.Sort();
lo hará por ti. Es bastante sencillo con una lista de cadenas. Debes ser un poco más inteligente si clasificas objetos.
'ListaServizi' es' IList
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 utilizar 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ática:
List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
typeCheck.Sort();
else
{
//... some other solution; there are a few to choose from.
}
Si usted sabe que a veces ListaServizi
llevará a cabo una implementación diferente de IList<string>
, dejar un comentario, y Añadiré una sugerencia o dos para ordenarlo.
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));
}
de salida: Abdi 3 Alex 2 Bob 4
Ha tratado '.Sort' http://msdn.microsoft.com/en-us/library/b0zbh7b6%28v=vs. 90% 29.aspx? – Matthew
Método de clasificación; en combinación con Reverse si también necesita descender –
Mire aquí http://www.dotnetperls.com/sort-list –