堆栈克隆问题:.NET错误或预期的行为?

ic3*_*3rg 1 .net vb.net

克隆堆栈时我遇到了这个问题......不确定它是.NET错误还是预期的行为.意见?

Dim myStack As New Stack(Of Integer)({2,1,3})
Response.Write(String.Join(",",myStack.Clone) & "<br>" & String.Join(",",myStack.Clone.Clone))
Run Code Online (Sandbox Code Playgroud)

输出:

2,1,3
3,1,2 <- I expected 2,1,3
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 8

这不是.Net Bug.该Stack(Of T)类型没有Clone方法或属性.以下代码演示了这一点,该代码无法在标准VB.Net控制台项目上编译

Dim stack As New Stack(Of Integer)({2, 1, 3})
Console.WriteLine(String.Join(",", stack.Clone))
Run Code Online (Sandbox Code Playgroud)

Clone绑定的方法必须是项目中某处定义的扩展方法.错误或设计行为就在那里.