0

我无法将动态值分配给双精度数组。如果我保持静态,我就能做到。帮帮我。

我已将数组定义为 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。同样,当我得到 entropy_db_col[2] 时,entropy_db_col[1] 和 entropy_db_col 的值[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空间中的 a 。

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();

或者,如果您使用的 .Net 版本早于 3.5,您可以使用:

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 回答