c# 点数组
c# array of Point
目前我使用
存储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++}};
}
但总是得到最后的结果而不是在数组列表中。
for(int i = 0 ; i <10 ;i ++)
{
points1 = new Point[] { new Point { X = i, Y = i++}};
}
不设置数组中每一项的值。每次迭代都会将 points1 重新分配为一个新数组。请注意,分配的是 points1,而不是 points1 的元素。为此,您需要将新的 Point 值分配给 points1[i]。
与其在每次迭代时创建一个新的 array(类型为 Point[]
),不如创建一个新的 array-element(属于Point
类型),放入数组:
for(int i = 0; i < 10; i++)
{
points1[i] = new Point { X = i, Y = i++ };
}
此外,您将 i
递增两次,一次是在 for 循环声明中,一次是在创建新的 Point
时。因此,您的 X
- 和 Y
-坐标获得以下值:
{ 0, 2, 4, 6, 8 }.
要创建 10 个点而不是仅 5 个点,您应该省略其中一个增量。
无论如何,我建议改用 List<Point>
,它更具动态性,因为您可以轻松地向其中添加和删除元素:
List<Point> points = new List<Point>();
points.Add(new Point(...));
您可以直接为该数组设置点数:
Point[] points1 = new Point[10];
for (int i = 0; i < 10; i++)
{
points1[i] = new Point { X = i, Y = i };
}
如果你没有固定数量的点,你必须使用列表而不是数组。
这是一个例子:
List<Point> points1 = new List<Point>();
for (int i = 0; i < 10; i++) // can be any limit
{
points1.Add(new Point { X = i, Y = i++ });
}
// you can convert to array at any time
var points = points1.ToArray();
Console.WriteLine(points1);
List<Point> points1 = new List<Point>();
for (int i = 0; i < 10; i++)
{
points1.Add(new Point { X = i, Y = i++ });
}
目前我使用
存储X和YPoint[] 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++}};
}
但总是得到最后的结果而不是在数组列表中。
for(int i = 0 ; i <10 ;i ++)
{
points1 = new Point[] { new Point { X = i, Y = i++}};
}
不设置数组中每一项的值。每次迭代都会将 points1 重新分配为一个新数组。请注意,分配的是 points1,而不是 points1 的元素。为此,您需要将新的 Point 值分配给 points1[i]。
与其在每次迭代时创建一个新的 array(类型为 Point[]
),不如创建一个新的 array-element(属于Point
类型),放入数组:
for(int i = 0; i < 10; i++)
{
points1[i] = new Point { X = i, Y = i++ };
}
此外,您将 i
递增两次,一次是在 for 循环声明中,一次是在创建新的 Point
时。因此,您的 X
- 和 Y
-坐标获得以下值:
{ 0, 2, 4, 6, 8 }.
要创建 10 个点而不是仅 5 个点,您应该省略其中一个增量。
无论如何,我建议改用 List<Point>
,它更具动态性,因为您可以轻松地向其中添加和删除元素:
List<Point> points = new List<Point>();
points.Add(new Point(...));
您可以直接为该数组设置点数:
Point[] points1 = new Point[10];
for (int i = 0; i < 10; i++)
{
points1[i] = new Point { X = i, Y = i };
}
如果你没有固定数量的点,你必须使用列表而不是数组。 这是一个例子:
List<Point> points1 = new List<Point>();
for (int i = 0; i < 10; i++) // can be any limit
{
points1.Add(new Point { X = i, Y = i++ });
}
// you can convert to array at any time
var points = points1.ToArray();
Console.WriteLine(points1);
List<Point> points1 = new List<Point>();
for (int i = 0; i < 10; i++)
{
points1.Add(new Point { X = i, Y = i++ });
}