我需要初始化三个点的数组。 我想写下面的内容,但只有三个元素一次。
Point P = new Point { X = 0, Y = 1 };
Point[] P = new Point[3];// <---- ?
如何正确写作?
答案 0 :(得分:10)
以下是创建3个不同点的数组的代码:
Point[] points = new Point[] { new Point { X = 0, Y = 1 }, new Point { X = 2, Y = 1 }, new Point { X = 0, Y = 3 } };
答案 1 :(得分:5)
这并不是真正的简写。对于三个,只需写三次:
Point initial = new Point { X = 0, Y = 1 };
Point[] P = new Point[3] { initial, initial, initial };
答案 2 :(得分:5)
以下示例您可以使用Point
Enumerable.Range
var points = Enumerable.Range(0, 10)
.Select(x => new Point {X = 0, Y = 1})
.ToArray();
答案 3 :(得分:4)
因为你质疑有静态固定长度的点数与静态坐标的交易,当数组初始化就这么简单时,不需要在这个上下文中使用LINQ和循环。
所以你可以这样初始化一个数组:
Point[] P = new Point[]
{
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
...
};
或使用 duck typing 类型推断(感谢minitech):
var P = new []
{
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
new Point { X = 0, Y = 1 },
...
};
答案 4 :(得分:3)
这是最短的解决方案:
Point[] points = Enumerable.Repeat<Point>(new Point(0, 1), 3).ToArray();