为double数组赋值

时间:2013-03-13 16:30:53

标签: c# asp.net

我无法将动态值分配给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.类似地,当我得到entropy_db_col [2]时,entropy_db_col的值[1] ]和entropy_db_col [0]变成0 ..我该怎么办?

2 个答案:

答案 0 :(得分:3)

使用data.count创建内存

之前使用

entropy_db_col=new double[data.count]

答案 1 :(得分:0)

动态数组

double[]不是动态数组,而是一个未定义大小的数组。必须首先使用具体大小定义它,例如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];
    }
}