首页 > 解决方案 > c# 点数组

问题描述

目前我使用存储 X 和 Y

Point[] points1 = new Point[] { 
    new Point { X = 262, Y = 321 }, 
    new Point { X = 325, Y = 334 }, 
    new Point { X = 278, Y = 387 }
};

如何全局设置变量“points1”?所以我可以使用循环来提取数据 X 和 Y。

我尝试过的示例代码

Point[] points1 = new Point[]{};

for(int i = 0 ; i <10 ;i ++)
{
  points1 = new Point[] { new Point { X = i, Y = i++}};
}

但总是得到最后一个结果,而不是在数组列表中。

标签: c#arrayspoint

解决方案


与其在每次迭代时创建一个新数组(类型为),不如创建一个新数组元素(类型为)并将其放入数组中:Point[]Point

for(int i = 0; i < 10; i++)
{
    points1[i] = new Point { X = i, Y = i++ };
}

此外,您要增加i两次,一次是在 for-loop-declaration 中,一次是在创建 new 时Point。因此,您的X- 和 -Y坐标获得以下值:

{ 0, 2, 4, 6, 8 }. 

要创建 10 个点而不是仅 5 个点,您应该省略其中一个增量。

无论如何,我建议改用 a List<Point>,它更动态,因为您可以轻松地向其中添加和删除元素:

List<Point> points = new List<Point>();
points.Add(new Point(...));

推荐阅读