假设已编写一个方法,该方法需要一个排序列表作为其输入之一。当然,这将在代码中进行注释和记录,参数将被命名为“sortedList”,但如果有人忘记了,就会出现错误。
有没有办法强制输入必须排序?我正在考虑创建一个带有列表和布尔值“排序”的新对象类,并且传递的对象必须是该对象,然后该方法立即检查“排序”布尔值是否为真。但我觉得必须有更好/标准的方法。
*这个方法是在循环中调用的,所以不想在方法内部进行排序。
假设您只需要迭代此集合,而不执行任何其他操作,您可以接受IOrderedEnumerable,这将要求序列已按某种排序。(请记住,这样做可能意味着它是根据您期望的其他标准进行排序的,因此根据您内部使用的标准,数据仍然可能未排序。)
您拥有的另一个选项是在收到数据后简单地对数据进行排序,而不是要求调用者对数据进行排序。请注意,对于大多数常见的排序算法,对已排序的数据集进行排序是其最佳情况速度(通常为 O(n) 而不是 O(n*log(n))),因此即使数据集有时已排序有时未排序只要您没有庞大的数据集,这并不一定很糟糕。
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |