2个错误 - 无法将类型system.collection.generic.list <float>隐式转换为float,并且无法将float []类型隐式转换为float </float>

时间:2014-03-01 12:11:27

标签: c#

在行Cannot implicitly convert type system.collection.generic.list<float> to float中显示错误"return storerandomvalue;",其类型为

List<float> storerandomvalues = new List<float>(100);

storerandomvalues是一个大小为100的列表。

        public float Update_Au(int itemid)
            {
                List<float> minus = new List<float>(100);
                List<float> Landa_Au = new List<float>(100);
                //float[] Error_Bi = b[itemid];
                float[] Error_Bi =new float [100];
                for (int iii=0;iii<100;iii++)
                {
                    Landa_Au[iii]=Convert.ToSingle(storerandomvalues[iii]*0.1);
                }
                for (int cc = 0; cc < 100; cc++)
                {
                    Error_Bi[cc] = Convert.ToSingle(i_f[cc] * error);
                }
                for (int ccc = 0; ccc < 100; ccc++)
                {
                    minus[ccc] = Error_Bi[ccc] - Landa_Au[ccc];
                }
                for (int ee = 0; ee < 100; ee++)
                {
                    minus[ee] = Convert.ToSingle(minus[ee] * 0.1);
                }
                for (int h = 0; h < 100; h++)
                {
                    storerandomvalues[h] = storerandomvalues[h] + minus[h];
                }
                return storerandomvalues;  // Linee's error
            }

在行"cannot implicitly convert type float [] to float"中显示错误return i_f1;,其类型为float[] i_f = new float[100];

public float Update_Bi(int itemid)
        {
            List<float> minus1 = new List<float>(100);
            List<float> Landa_Bi = new List<float>(100);
            float[] Error_Au = new float [100];
            for (int iz=0;iz<100;iz++)
            {
                Landa_Bi[iz]=Convert.ToSingle(i_f[iz]*0.1);
            }
            for (int ix = 0; ix < 100; ix++)
            {
                Error_Au[ix] = storerandomvalues[ix] * error;
            }
            for (int ic = 0; ic < 100; ic++)
            {
                minus1[ic] = Error_Au[ic] - Landa_Bi[ic];
            }
            for (int ie = 0; ie < 100; ie++)
            {
                minus1[ie] = Convert.ToSingle(minus1[ie] * 0.1);
            }
            for (int ih = 0; ih < 100; ih++)
            {
                i_f1[ih] = i_f[ih] + minus1[ih];
            }
            return i_f1;
        }

1 个答案:

答案 0 :(得分:0)

问题1:您已将您的函数Update_Au()返回类型声明为float,但您尝试返回List<float>

解决方案1:Update_Au()功能return类型从float更改为List<float>。功能。

问题2:您已将自己的函数Update_Bi()的回复类型声明为float,但您要回复float[]

解决方案2:Update_Bi()函数返回类型从float更改为float[]