我需要初始化一个包含三个点的数组。我想像下面这样写,但三个元素只写一次。
Point P = new Point { X = 0, Y = 1 };
Point[] P = new Point[3];// <---- ?
如何正确书写?
我需要初始化一个包含三个点的数组。我想像下面这样写,但三个元素只写一次。
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 };
下面的示例您可以Point
使用创建 10Enumerable.Range
var points = Enumerable.Range(0, 10)
.Select(x => new Point {X = 0, Y = 1})
.ToArray();
因为您的问题涉及具有静态坐标的静态固定长度点数组,所以当数组初始化如此简单时,无需在此上下文中使用 LINQ 和循环。
所以你可以这样初始化一个数组:
Point[] P = new Point[]
{
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
...
};
或使用鸭子类型推断(感谢minitech):
var P = new []
{
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
...
};
这是最短的解决方案:
Point[] points = Enumerable.Repeat<Point>(new Point(0, 1), 3).ToArray();