C# 无法将类型float隐式转换为float[]

C# 无法将类型float隐式转换为float[],c#,error-handling,C#,Error Handling,获取错误当尝试编译此代码时,错误CS0029无法将类型“float”隐式转换为“float[]” float[] timeValues; float time; while (lineBeingRead != null) { valueSplit = lineBeingRead.Split(exerciseDivider); for (int i = 0; i < value

获取错误当尝试编译此代码时,错误CS0029无法将类型“float”隐式转换为“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;
                    }
                }
            }
        }
float[]时间值;
浮动时间;
while(lineBeingRead!=null)
{
valueSplit=lineBeingRead.Split(exerciseDivider);
对于(int i=0;i

有人知道这里发生了什么吗?我无法理解这一点,也找不到任何答案。

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

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
}
string[]timeValuesString=exerciseLine.Split(分时器);
timeValues=新浮点[timeValuesString.Length];//变革-1
对于(int a=0;a
您试图为数组分配一个浮点数(而不是将其添加为数组的元素)。因此,必须首先使用预定义的大小初始化数组:
timeValues=newfloat[neededLength]
。但如果您不知道所需的大小,则最好选择
列表
类型,如下代码:

//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);
            }
        }
    }
}

这意味着一个赋值的左边被定义为一个浮点数组,但你试图在其中放入一个浮点值。你测试过你的代码吗?此行
List timeValues=新的List timeValues将不起作用。错误的对象创建!我编辑了我的代码,并将第一行更改为
List timeValues=new List()。谢谢你的关注。
var timeArray = timeValues.ToArray();