这是一个“为什么”的问题,而不是“如何”的问题。我正在用 C# 编写一个小的 ArcGIS 项目,我必须构建两个列表来做一些后续工作。这是代码:
List<double[]> store_coords = new List<double[]>();
List<IPoint> store_points = new List<IPoint>();
double[] templist = new double[2];
IPoint newpoint = new PointClass();
IFeature feature = null;
while ((feature = buildingCursor.NextFeature()) != null)
{
IPolygon gon = (IPolygon)feature.Shape;
templist[0] = gon.FromPoint.X;
templist[1] = gon.FromPoint.Y;
store_coords.Add(templist);
newpoint.X = gon.FromPoint.X;
newpoint.Y = gon.FromPoint.Y;
store_points.Add(newpoint);
}
现在,在这之后,store_coords 和 store_points 列表完全倒退了。就好像 Add 方法将 templist 和 newpoint 放在列表的开头而不是结尾。
但是,当我添加
templist = new double[2];
和
newpoint = new PointClass();
到 while 循环的开头,列表不再反转。
这里发生了什么?o_O