0

double の配列に動的な値を割り当てることができません。私がそれを静的に保てば、私はそれを行うことができます。手伝ってください。

サイズが動的な double として配列を定義しました。次に、いくつかの値を計算し、その値をこの double 配列に割り当てたいと考えています。
やった..

double[] entropy_db_col;

しかし、私はエラーが発生しています。配列がインデックスから外れています。
を計算すると (double)entropy_db - (double)a、静的な値が得られます。してもentropy_db_col[0] = (double)entropy_db - (double)a;、エラーが発生しますか? 私は何をすべきか ?

次に、この配列から最大値を見つけたいですか? このコードは正しいですか?

 largest = Convert.ToInt32(entropy_db_col[0].ToString());

私を助けてください。
それは素晴らしいことだ。

私はこれを解決しましたが、今私が得る問題は次のとおりです:

entropy_db_col[0] の値を取得し、entropy_db_col[1] の値を繰り返し取得すると、entropy_db_col[0] の値が 0 になります。 [0] が 0 になってしまいました。

4

2 に答える 2

3

data.count でメモリを作成する

使う前に

entropy_db_col=new double[data.count]
于 2013-03-13T16:34:28.753 に答える
0

動的配列

Adouble[]は、未定義のサイズの配列ほど動的配列ではありません。使用する前など、最初に具体的なサイズで定義する必要がありnew double[data.Count]ますが、これによりサイズが固定されます。

サイズをいつでも変更できる配列が必要な場合は、名前空間のList<double>代わりにを使用してください。System.Collections.Generic

using System.Collections.Generic;

...

List<double> entropy_db_col = new List<double>();

for (int i = 0; i < data.Count; i++)
{
    \\some calculation
    entropy_db_col.Add((double)entropy_db - (double)a);
}

最大値

.Net 3.5以降で最大値を見つけるには、次を使用できます。

using System.Linq;

...

double largest = entropy_db_col.Max();

または、3.5より前のバージョンの.Netを使用している場合は、次を使用できます。

double largest = entropy_db_col[0];
for (int j = 1; j < entropy_db_col.Length; j++)
{
    if (largest < entropy_db_col[j])
    {
        largest = entropy_db_col[j];
    }
}
于 2013-03-14T01:10:23.803 に答える