【发布时间】:2021-12-26 20:42:06
【问题描述】:
我使用下面的代码对List<DataAccessViewModel> 列表进行排序。
这是排序顺序:
- PriorityScore
- MName
- CName
- FName
它按预期工作。
public int Compare(DataAccessViewModel x, DataAccessViewModel y)
{
if (x == null || y == null)
{
return 0;
}
return x.CompareTo(y);
}
public int CompareTo(DataAccessViewModel mod)
{
int retval = (int)(this.PriorityScore?.CompareTo(mod.PriorityScore));
if(retval != 0)
return retval;
else
{
retval = (this.MName ?? "zzzzzzzzzzzzz").CompareTo(mod.MName ?? "zzzzzzzzzzzzz");
if (retval != 0)
return retval;
else
{
retval = (this.CName ?? "zzzzzzzzzzzzz").CompareTo(this.CName ?? "zzzzzzzzzzzzz");
if (retval != 0)
return retval;
else
retval = (this.FName ?? "zzzzzzzzzzzzz").CompareTo(this.FName ?? "zzzzzzzzzzzzz");
}
}
return retval;
}
但代码对我来说看起来很笨拙。有没有更好的方法或者是这样吗?
【问题讨论】:
标签: c# sorting model-view-controller icomparer