gpt4 book ai didi

当列表包含一些相同的 DateTime 值时,C# DateTime OrderBy

转载 作者:行者123 更新时间:2023-11-30 19:53:40 29 4
gpt4 key购买 nike

我有一个按 DateTime 属性排序的引用类型列表。其中一些具有相同的 DateTime 。例如,多场棒球比赛同时开始。

我想确认 OrderBy 每次都会以相同的方式排序;也就是说因为我输入的顺序是A->B->C;输出也将是 A->B->C(所有项都具有相同的 DateTime)。

我写了一个单元测试来确认订单被保留。测试通过了。但是在不知道发生了什么的情况下,我仍然没有信心。

有人可以为我确认 OrderBy 行为吗?我尝试通过谷歌搜索,但找不到任何确定的内容。

最佳答案

您所询问的概念的正式名称称为 Stable Sort .

了解这一点,您可以检查 documentation for Enumerable.OrderBy并看到它确实使用了稳定的排序算法。从 Remarks 接近尾声开始部分:

This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved.

此外,在对该问题的评论中,有一些与 Linq-to-SQL 混淆的地方。如果您的数据已经在 List<T> 中对象,您不再使用 Linq-to-SQL。但是,值得注意的是 Linq-to-SQL 使用 IQueryable.OrderBy而不是 Enumerable.ORderBy , 和 IQueryable.OrderBy 保证稳定排序。您可能得到一个稳定的排序,但这取决于数据库引擎的功能。

关于当列表包含一些相同的 DateTime 值时,C# DateTime OrderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189991/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com