如何初始化一个Point数组
本文关键字:一个 Point 数组 初始化 | 更新日期: 2023-09-27 18:03:38
我需要初始化一个包含三个点的数组。我想这样写,但是三个元素只写一次。
Point P = new Point { X = 0, Y = 1 };
Point[] P = new Point[3];// <---- ?
如何正确书写?
下面是创建3个不同点的数组的代码:
Point[] points = new Point[] { new Point { X = 0, Y = 1 }, new Point { X = 2, Y = 1 }, new Point { X = 0, Y = 3 } };
没有真正的简写。对于三个,只写三次:
Point initial = new Point { X = 0, Y = 1 };
Point[] P = new Point[3] { initial, initial, initial };
下面的例子可以使用Enumerable.Range
创建10个Point
var points = Enumerable.Range(0, 10)
.Select(x => new Point {X = 0, Y = 1})
.ToArray();
这是最短的解决方案:
Point[] points = Enumerable.Repeat<Point>(new Point(0, 1), 3).ToArray();
因为您的问题处理的是具有静态坐标的点的静态固定长度数组,因此当数组初始化如此简单时,无需在此上下文中使用LINQ和循环。
你可以这样初始化数组:
Point[] P = new Point[]
{
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
...
};
或使用duck输入类型推断(感谢minitech):
var P = new []
{
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
...
};