我有一个对象列表和一个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得到负值?
答案 0 :(得分:1)
IndexOf
将返回-1。
显然,str
中没有制表符,因此你的长度为-1,抛出异常。
快速检查有助于此:
if (str.Contains('\t'))
{
...
}