¿Cómo puedo realizar una clasificación con dos criterios diferentes?Ordenar con dos criterios, cadena ascendente, int ascendente
Por ejemplo, I tienen objetos persona como:
Person
con propiedades FirstName
(string), LastName
, y Rank
(int).
Datos de ejemplo, así:
Xavier Smith 1
Alexander Smith 2
Alexander Smith 1
Bob Hawke 2
Debe ordenar en FirstName alfabéticamente, a continuación, en el rango, por ejemplo, resultante:
Alexander Smith 1
Alexander Smith 2
Bob Hawke 2
Xavier Smith 1
Hasta ahora, he intentado lo siguiente, pero no está funcionando apropiadamente:
peopleList
es List<Person>
peopleList.Sort(new Comparison<Person>((x,y) => x.Rank.CompareTo(y.Rank)));
peopleList.Sort(new Comparison<Person>((x, y) => string.Compare(x.Name, y.Name)));
Gracias
edición: a Evitar cambiar demasiado mi código, realmente quiero mantener la lista, si cambio las líneas anteriores a:
peopleList.OrderBy(person => person.FirstName).ThenBy(person => person.Rank).ToList();
Daría la misma lista que acaba de ordenar correctamente, ¿correcto?
Realmente debo leer mucho más sobre LINQ, ¡parece estar haciendo mi vida mucho más fácil! – baron
@baron ver mi edición, comenté su pregunta en su edición reciente. –
@baron Agregué un comparador que se puede usar con 'Sort()'. –