Поскольку массивы являются ссылочными типами, вы используете один и тот же экземпляр, поэтому каждый раз, когда я изменяю массив, он также изменяет каждый экземпляр внутри стека.
Я бы создал новый массив экземпляров для Stack
вместо c
, он может разделить два массива.
Stack<Point[]> v = new Stack<Point[]>();
Point[] c = new Point[4];
v.Push(new Point[4]);
c[0] = new Point(1, 1);
если в c
Point[]
есть какие-либо данные, вы можете попытаться использовать CopyTo
для копирования данных в другой массив.
Stack<Point[]> v = new Stack<Point[]>();
Point[] c = new Point[4];
Point[] pushArr = new Point[c.Length];
c.CopyTo(pushArr, 0);
v.Push(pushArr);