Quiero ordenar una lista en C#, por una propiedad de los objetos almacenados en ella. Tengo esto:Reflection get object property para ordenar una lista
if (sortColumn == "Login")
{
if (sortDir == "ASC")
{
filteredList.Sort((x, y) => string.Compare(x.Login, y.Login, true));
}
else
{
filteredList.Sort((x, y) => string.Compare(y.Login, x.Login, true));
}
}
y trabaja muy bien, pero quiero hacerlo más genérica, con el fin de no tener que conocer el campo para ordenar. He pensado en algo como esto:
//With sortColumn = "Login";
if (sortDir == "ASC")
{
filteredList.Sort((x, y) => string.Compare(x.GetType().GetProperty(sortColumn), y.GetType().GetProperty(sortColumn), true));
}
else
{
filteredList.Sort((x, y) => string.Compare(y.GetType().GetProperty(sortColumn), x.GetType().GetProperty(sortColumn), true));
}
Obviamente, esto no funciona, pero esto es lo que quiero. ¿Es posible de alguna manera?
Gracias.
has necesitado '.... GetProperty (sortColumn) .GetValue (...) ¿? –