我想通過存儲在其中的對象的屬性對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(...) '? –