3

3点の配列を初期化する必要があります。以下のように書きたいのですが、3つの要素に対して1回だけです。

Point P = new Point { X = 0, Y = 1 };

Point[] P = new Point[3];// <----  ?

正しく書く方法は?

4

5 に答える 5

14

3つの異なるポイントの配列を作成するためのコードは次のとおりです。

Point[] points = new Point[] { new Point { X = 0, Y = 1 }, new Point { X = 2, Y = 1 }, new Point { X = 0, Y = 3 } };
于 2013-03-13T14:29:28.257 に答える
6

そのための速記は実際にはありません。3つの場合は、3回書くだけです。

Point initial = new Point { X = 0, Y = 1 };
Point[] P = new Point[3] { initial, initial, initial };
于 2013-03-13T14:28:25.000 に答える
5

Point以下の例では、を使用して10を作成できますEnumerable.Range

var points = Enumerable.Range(0, 10)
            .Select(x => new Point {X = 0, Y = 1})
            .ToArray();
于 2013-03-13T14:31:27.553 に答える
4

静的座標を持つポイントの静的固定長配列について質問するので、配列の初期化が非常に単純な場合、このコンテキストで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 },
    ...
};
于 2013-03-13T14:29:50.313 に答える
3

最短の解決策は次のとおりです。

Point[] points = Enumerable.Repeat<Point>(new Point(0, 1), 3).ToArray();
于 2013-03-13T14:32:53.873 に答える