c# InvalidArgument=Value '对'索引'无效
本文关键字:索引 无效 InvalidArgument Value | 更新日期: 2023-09-27 18:16:28
我得到以下错误:
类型为"System"的未处理异常。在System.Windows.Forms.dll中发生了ArgumentOutOfRangeException
附加信息:InvalidArgument= '1'的值对'index'无效
用于下面的代码。
private void button_confirm_Click(object sender, EventArgs e)
{
listBox_savedata.Items.Add(textBox_ordertostart.Text +" "+ comboBox_suburb.SelectedItem.ToString() + " " + dateTimePicker2.Value.ToShortDateString());
for (int i = 0; i <= listBox_savedata.Items.Count; i++)
{
string s1 = listBox_savedata.Items[i].ToString();
int startpos = s1.IndexOf("PM");
string sub = s1.Substring(0, 5);
if(sub+" "+"PM"==DateTime.Now.ToString("HH:mm tt"))
{
mplayer.PlayLooping();
}
}
}
更改for
循环:
:
for (int i = 0; i <= listBox_savedata.Items.Count; i++) // <=
新:for (int i = 0; i < listBox_savedata.Items.Count; i++) // <
这一行不对:
for (int i = 0; i <= listBox_savedata.Items.Count; i++)
c#中的数组是零索引的,因此数组中的最后一个索引比计数少1。改为:
for (int i = 0; i < listBox_savedata.Items.Count; i++)
一切都会好起来的。
或者使用foreach
循环:
foreach (var item in listBox.savedata.Items)
{
int startpos = item.IndexOf("PM");
string sub = item.Substring(0, 5);
....
}