【发布时间】:2018-12-13 02:50:08
【问题描述】:
我有以下课程。
public class Header
{
public long CombinedIndex { get; private set; }
public int Key { get; set; } //Unique
public bool IsRequired { get; set; }// True or false
public DateTime? AvailableDate { get; set; } // null or date value
public int Index { get; set; } // a number and can be same among other Header
public void CalculateCombinedIndex()
{
CombinedIndex = Key + (IsRequired ? 0 : 1) + Index + (AvailableDate ?? DateTime.MaxValue).Ticks;
}
}
我预计大约 50,000 个实例 它在一个数组中。我需要按以下顺序对它们进行排序:
- 首先基于 IsRequired
- 然后索引
- 那么可用日期(日期值接近当前日期)
- 键(主键)
将所有这些属性值和 导出一个唯一的数字,然后只对该数字进行排序。 稍后,可以将 Header 的列表转换为字典 where 键是 CombinedIndex,我已经排序的数组可以查找 字典顺序我迭代了数组。如何高效和 承诺这一切看起来?
【问题讨论】: