Estoy usando C # en Framework 3.5. Estoy buscando ordenar rápidamente un genérico List<T>
. Por el bien de este ejemplo, digamos que tengo una Lista de un Person
tipo con una propiedad de apellido. ¿Cómo ordenaría esta lista usando una expresión lambda?
List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
¿Necesita que la lista se ordene en su lugar, o simplemente una secuencia ordenada de los contenidos de la lista? Este último es más fácil:
Para ordenar en su lugar, necesitaría una
IComparer<Person>
o unaComparison<Person>
. Para eso, es posible que desee considerarProjectionComparer
en MiscUtil .(Sé que sigo sacando MiscUtil, simplemente sigue siendo relevante ...)
fuente
List<T>
, pero no lo necesitas si solo quieres iterar.puedes usar linq :) usando:
fuente
fuente
OrderBy
no modificar la lista, sino que devuelven una nueva "colección" (generalmente diferidaIEnumerable<T>
) que debe asignarse a algo.fuente
Para mí, esta útil guía ficticia - Ordenar en lista genérica - funcionó. Le ayuda a comprender 4 formas (sobrecargas) de hacer este trabajo con explicaciones muy completas y claras y ejemplos simples
fuente
Puede usar este fragmento de código:
donde
New1
esta aList<Employee>
.EmpList
es variable de aList<Employee>
.z
es una variable deEmployee
tipofuente
var
tipo.New1
esList<Employee>
yz
esEmployee
.También puedes usar
fuente
Este es un clasificador genérico. Llamado con el interruptor de abajo.
dvm.PagePermissions es una propiedad en mi ViewModel de tipo Lista T en este caso T es una clase de modelo EF6 llamada page_permission.
dvm.UserNameSortDir es una propiedad de cadena en el modelo de vista que contiene la siguiente dirección de clasificación. El que se usa actaully en la vista.
fuente