C# #:";索引超出了数组的边界;
我有一个名为SelectedItem的字符串,我想将其拆分为5个字符串,然后在文本框中使用。代码如下:C# #:";索引超出了数组的边界;,c#,arrays,split,C#,Arrays,Split,我有一个名为SelectedItem的字符串,我想将其拆分为5个字符串,然后在文本框中使用。代码如下: string[] Details = SelectedItem.Split(','); string EmployeeID = Details[0]; string EmployeeName = Details[1]; string EmployeePay = Details[3];
string[] Details = SelectedItem.Split(',');
string EmployeeID = Details[0];
string EmployeeName = Details[1];
string EmployeePay = Details[3];
string EmployeeHours = Details[4];
decimal TempWage = int.Parse(Details[3]) * int.Parse(Details[4]);
string EmployeeWage = TempWage.ToString();
TbxWage.Text = "Employee " + EmployeeID + "Wage Details " + Environment.NewLine + "pay rate is " + EmployeePay + Environment.NewLine + "Working Hours is " + EmployeeHours + Environment.NewLine + "Wage is " + EmployeeWage;
这段代码应该在我单击某个按钮时运行,但我得到的却是“索引超出了数组的边界”,我不明白这是什么意思。这意味着您吐出的字符串没有拆分为您期望的部分数 你可以在使用前检查一下
if(Details.Length == 5)
{
// do stuff
}
这意味着
SelectedItem.Split(',')代码>不返回5项。因此,当您访问其中一个项目时,它不存在。Details[x]
中提供的索引不存在,因为x
超出了Details
的范围。SelectedItem
中包含哪些信息?请显示SelectedItem
的内容,以便明确指出此代码失败的原因。我注意到详细信息[2]
从未被使用过。这意味着在数百个问题中的每一个问题都有相同的错误信息。这意味着您超出了数组的边界,这意味着您在数组中的项没有您想象的那么多,或者您使用了错误的索引(例如,从1开始而不是从零开始,因此超出了末尾)。VS有一个调试器,它可以一步一步地通过代码来解决像这样的问题;你应该学会使用它。