我现在有以下内容:
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;
}
我想摆脱 case 语句,只做类似的事情:
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));
}