合并按工作日而非字母顺序对一周中的日期进行排序



我有一个对象数组,它具有表示工作日的字符串属性。我想写一个合并排序算法来按工作日的顺序对我的对象数组进行排序。

我能写一个合并排序算法,但我想知道如何让它按工作日的顺序而不是按字母表排序?事先非常感谢。

使用支持自定义比较器的对象的集合,或者只在对象上实现IComparable,如下所示。然后只需使用属性到排序的静态映射,或者如果可以将字符串属性映射到DayOfWeek枚举,则使用内置排序。

不要编写排序算法,而是编写一个简单的Comparer,它将实现IComparer,将数组转换为列表,对该列表进行排序,然后在需要时转换回数组。一个可能的比较器是这样的:

Public WeekDayNameComparer<YourObject> : IComparer<yourObject> 
{
private string[] WeekDays = {"sunday", "monday", ..."friday"}
public int Compare(YourObject x, YourObject y) {
return Array.indexOf(WeekDays, x.WeekDay).CompareTo(Array.indexOf(WeekDays, y.WeekDay));
}
}

最新更新