リストに格納されているオブジェクトのプロパティによって、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));
}
明らかにこれはうまくいきませんが、これが私が望むものです。どういうわけかそれは可能ですか?
ありがとう。