是什么导致此解析错误? 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'))
{
   ...
}