根据Microsoft Doc,该SortedDictionary.GetEnumerator()方法是 C# 中的 O(log n) 操作。SortedDictionary由SortedSet. 查看.NET 源代码行 1911 到 1923,当GetEnumerator()调用该方法时,会实例化一个新的 Enumerator,它会在Stack<T>内部创建一个。然后Stack<T>在 Initialize() 方法中填写。这是一个 O(n) 操作,而不是 O(log n)!
如果有人解释 O(log n) 的原因,我将不胜感激。