3点の配列を初期化する必要があります。以下のように書きたいのですが、3つの要素に対して1回だけです。
Point P = new Point { X = 0, Y = 1 };
Point[] P = new Point[3];// <---- ?
正しく書く方法は?
3点の配列を初期化する必要があります。以下のように書きたいのですが、3つの要素に対して1回だけです。
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 } };
そのための速記は実際にはありません。3つの場合は、3回書くだけです。
Point initial = new Point { X = 0, Y = 1 };
Point[] P = new Point[3] { initial, initial, initial };
Point
以下の例では、を使用して10を作成できますEnumerable.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();