【发布时间】:2012-10-25 22:31:11
【问题描述】:
我的程序中有以下代码在抛出索引超出范围异常 line yearList.SetValue(years[count], count);
protected void invoiceYear_DataBound(object sender, EventArgs e)
{
//invoiceYear.SelectedItem.Value= GetYearRange();
String[] years = GetYearRange().Split(new char[] { '[', ',', ']',' ' });
ListItem [] yearList = new ListItem[]{};
System.Diagnostics.Debug.WriteLine("years-->" + years.Length);
for (int i = 0; i < years.Length; i++)
{
System.Diagnostics.Debug.WriteLine("years-->" + years.GetValue(i));
}
int count = 0;
foreach (String str in years)
{
if (string.IsNullOrEmpty(str))
System.Diagnostics.Debug.WriteLine("empty");
else
{
yearList.SetValue(years[count], count);
count++;
}
}
//System.Diagnostics.Debug.WriteLine("yearList-->" + yearList.GetValue(0));
//invoiceYear.Items.AddRange(yearList);
}
【问题讨论】:
-
您实际上还没有问过问题。您可能想更新您的帖子以包含一个问题。
-
您是否尝试过调试,看看当您使用 count 访问 years 数组时它的值是多少?
-
它在第一个循环本身中抛出此异常..意味着 count=0;我猜,它的声明“ListItem [] yearList = new ListItem[]{};”的问题我猜它初始化为 0 索引。但我没有得到如何声明一个动态数组?或者也可能是其他东西..但我无法弄清楚..
标签: c# indexoutofboundsexception