我想通过存储在其中的对象的属性对c#中的列表进行排序。我有这个:反射获取对象属性来对列表进行排序
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));
}
}
它的工作正常,但我想做更通用的,为了不必知道字段进行排序。我有这样的想法:
//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));
}
显然这不起作用,但这是我想要的。有没有可能?
谢谢。
你试过'....的getProperty(sortColumn).GetValue(...) '? –