C# 无法将类型float隐式转换为float[]
获取错误当尝试编译此代码时,错误CS0029无法将类型“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
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();