为了账号安全,请及时绑定邮箱和手机立即绑定

不能将类型 float 隐式转换为 float[]

不能将类型 float 隐式转换为 float[]

C#
守着星空守着你 2021-11-28 18:45:19
Error    CS0029  Cannot implicitly convert type 'float' to 'float[]'尝试编译此代码时出错        float[] timeValues;        float time;        while (lineBeingRead != null)        {            valueSplit = lineBeingRead.Split(exerciseDivider);            for (int i = 0; i < valueSplit.Length; i++)            {                if (valueSplit[i].Contains(textToFind))                {                    exerciseLine = valueSplit[i];                    string[] timeValuesString = exerciseLine.Split(timeDivider);                    for (int a = 0; a < timeValuesString.Length; i++)                    {                        time = float.Parse(timeValuesString[1]);                        timeValues = time;                    }                }            }        }有谁知道这里发生了什么?我无法弄清楚这一点,也找不到任何答案。
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

您需要在使用之前实例化您的数组,并且您不能将单个浮点分配给整个数组。更改代码的以下部分


string[] timeValuesString = exerciseLine.Split(timeDivider);


timeValues = new float[timeValuesString.Length]; // CHANGE-1


for (int a = 0; a < timeValuesString.Length; i++)

{

    time = float.Parse(timeValuesString[1]);

    timeValues[a] = time; // CHANGE-2

}


查看完整回答
反对 回复 2021-11-28
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

您正在尝试为数组分配一个浮点数(而不是将其添加为数组的元素)。因此,您必须首先使用预定义的大小初始化数组:timeValues = new float[neededLength]。但是如果你不知道你需要的尺寸,List<float>类型是更好的选择,如下代码:


//float[] timeValues;

List<float> timeValues = new List<float>();


float time;


while (lineBeingRead != null)

{

    valueSplit = lineBeingRead.Split(exerciseDivider);

    for (int i = 0; i < valueSplit.Length; i++)

    {

        if (valueSplit[i].Contains(textToFind))

        {

            exerciseLine = valueSplit[i];


            string[] timeValuesString = exerciseLine.Split(timeDivider);


            for (int a = 0; a < timeValuesString.Length; i++)

            {

                time = float.Parse(timeValuesString[1]);

                //timeValues = time;

                timeValues.add(time);

            }

        }

    }

}

您也可以在需要时通过调用它的ToArray方法将列表转换为数组:


var timeArray = timeValues.ToArray();


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 709 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信