私は今、次のものを持っています:
switch (Mysort)
{
case "reqDate":
lstDMV.Sort((x, y) => DateTime.Compare(x.RequestDate, y.RequestDate));
break;
case "notifDate":
lstDMV.Sort((x, y) => DateTime.Compare(x.NotifDate, y.NotifDate));
break;
case "dueDate":
lstDMV.Sort((x, y) => String.Compare(x.TargetDateShort, y.TargetDateShort));
break;
case "days":
lstDMV.Sort((x, y) => x.DaysLapsed.CompareTo(y.DaysLapsed));
break;
}
ケースステートメントを取り除き、次のようなことをしたいだけです:
lstDMV.Sort((x, y) => String.Compare(x.MySort, y.MySort));
case ステートメントは非常に大きく、読みやすさが大幅に低下します。しかし、MySort
含まれlstDMV
ていないため、機能していません。それを代用できる別の方法はありますか?
MySort
もちろん、変数の値がlstDMV
プロパティ名と正確に一致するようにテキストを変更します。
私はまた、運が悪かったので次のことを試しました:(
if (sort != "")
{
string xsort, ysort;
xsort = "x." + sort;
ysort = "y." + sort;
lstDMV.Sort((x, y) => String.Compare(xsort, ysort));
}