在Stack< T>中使用.ToList()扩展
方法时,结果与弹出每个元素相同,并
添加到新列表(与推送的
内容相反)?
如果是这样,这是因为它真的是在每个元素上迭代,或者它是否在内部存储元素,并将数组滑动到新的List T中?
堆栈本身没有ToList
方法,它是Enumerable类的扩展
方法.由于这些扩展
方法仅处理IEnumerable,所以可以安全地假设ToList迭代堆栈的项目以创建新的列表.
更新:我用反光板检查;堆< T>将其项目存储在索引为0的最底层元素的数组中,但其枚举器以相反的顺序迭代数组.因此,从迭代器出来的第一个元素是堆栈的顶部.
原文链接:https://www.f2er.com/csharp/91708.html