我过去曾使用过Splits,但由于某些原因这个有点不同,我不确定为什么...
代码:
string responceuptime = scripting.ReadUntilPrompt();
string[] suptime = responceuptime.Split('s');
UpTime.Text = suptime;
错误:
无法将字符串[]隐式转换为字符串
答案 0 :(得分:3)
这是非常基本的事情,很容易从错误信息中弄清楚实际上是什么错误。
顺便说一句,以下行是罪魁祸首:
UpTime.Text = suptime;
由于suptime
的类型为string[]
,它是数组,而Text
属性的类型为String
。分配对类型的引用和来自类型的引用应该是相同的,否则我们将看到您刚刚面临的此错误消息。
从上面的代码行中不清楚你要在这里尝试实现什么,但是你需要将单个String
对象分配给Text
,你不能分配数组或集合单个String
对象。
希望它有所帮助。
答案 1 :(得分:1)
您的变量suptime
是string[]
- 一个字符串数组。虽然我不知道Uptime.Text
是什么,但我猜测它正在寻找单个字符串,这就是为什么您会收到编译错误的原因你是谁。
如果你想从数组中获取第一个字符串,那么你可以这样设置它:
UpTime.Text = suptime[0];
答案 2 :(得分:1)
对String.Split
的调用输出是一个字符串数组(String[]
)。您的代码在这里尝试将String[]
分配给String
变量,因此应用程序会抛出异常。
因此,您必须在数组中识别您要查找的值并选择指向它的索引(从0
到suptime.Length - 1
)。例如:
UpTime.Text = suptime[0]; // first value of the array
UpTime.Text = suptime[2]; // third value of the array
UpTime.Text = suptime[suptime.Length - 1]; // last value of the array
如果您的分割结果是:
{"A" "Z" "11:57"}
并且您希望UpTime.Text
充满看似时间价值的东西,很明显您必须选择的值是第三个。