是什么导致此解析错误? ArgumentOutOfRangeException:不能为负数。参数名称:长度
What's causing this Parsing error? ArgumentOutOfRangeException: Cannot be negative. Parameter name: length
我有一个对象列表和一个 delete() 但它正在生成
ArgumentOutOfRangeException: Cannot be negative. Parameter name: length
private void delete(int a)
{
if (currentSelected == -1) return;
string str = list.IndexOf(list[currentSelected]).ToString();
Debug.Log("STR: "+str); //returns the correct index
int id = int.Parse(str.Substring(0, str.IndexOf("\t"))); //Error occurs here
}
为什么 id 得到负值?
如果找不到元素,IndexOf
将 return -1。
这里很明显 str
中没有制表符,因此你的长度为 -1,抛出异常。
快速检查一下会有所帮助:
if (str.Contains('\t'))
{
...
}
我有一个对象列表和一个 delete() 但它正在生成
ArgumentOutOfRangeException: Cannot be negative. Parameter name: length
private void delete(int a)
{
if (currentSelected == -1) return;
string str = list.IndexOf(list[currentSelected]).ToString();
Debug.Log("STR: "+str); //returns the correct index
int id = int.Parse(str.Substring(0, str.IndexOf("\t"))); //Error occurs here
}
为什么 id 得到负值?
IndexOf
将 return -1。
这里很明显 str
中没有制表符,因此你的长度为 -1,抛出异常。
快速检查一下会有所帮助:
if (str.Contains('\t'))
{
...
}