Voglio ordinare un elenco in C#, da una proprietà degli oggetti memorizzati in esso. Ho questo:Riflesso ottenere proprietà dell'oggetto per ordinare un elenco
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));
}
}
e funziona benissimo, ma voglio farlo più generico, in modo da non dover conoscere il campo per ordinare. Ho pensato in qualcosa di simile:
//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));
}
Ovviamente questo non funziona, ma questo è quello che voglio. È possibile in qualche modo?
Grazie.
Hai provato '.... GetProperty (sortColumn) .GetValue (...) '? –