2

私は次の配列を持っています:

double[] Series = new double[] { 7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6 }

シリーズデバッグビュー:

> Series
--> [0]
--> [1]
--> ...
--> [10]
--> [11]

私が次のように書くとき:

object[] object_array = new object[] { Series }

object_arrayデバッグビュー:(複数のレベル)

> object_array
--> [0]
----> [0]
----> [1]
----> ...
----> [10]
----> [11]

私は新しいレベルを防ぐために以下を書きます:

object[] object_array = new object[Series.Length];
for (int i = 0; i < Series.Length; i++)
{
    object_array[i] = Series[i];
}

これは他の解決策の1つです。しかし、私はこれを行うためのより良い方法があるかもしれないと思います。上記のループを使用するのに問題はありますか?または別の方法?

(私はハイチャートを使用しています。複数のレベルを含む配列を指定すると、機能しません。)

ありがとう。

4

4 に答える 4

7
var object_array = Series.Cast<object>().ToArray();
于 2012-11-13T13:10:17.180 に答える
4

こうすることで

object[] object_array = new object[] { Series }

配列 object_array の最初のオブジェクト項目として double 配列を割り当てています。実際には、1 行の 2D 配列を作成しています。次のようなものを使用できます。

double[] Series = new double[] { 7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6 };
object[] object_array = new object[Series.Length];
Series.CopyTo(object_array, 0);
于 2012-11-13T13:14:13.240 に答える
4

LINQ を使用します。

double[] series = new double[] { 7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6 };
object[] seriesAsAbjectArray = series.Cast<object>().ToArray();

にキャストできない理由object[]は、それが値型であるため、ボックス化doubleされたアイテムを含む新しい配列を作成する必要があるためです。 double

于 2012-11-13T13:11:15.567 に答える
-2

You just assign it, because double is an object.

object[] object_array = Series;
于 2012-11-13T13:10:20.157 に答える