2012-11-17 80 views
0

我总是收到“索引超出数组边界”。当我尝试将项目添加到列表视图。C#:索引超出了数组范围的边界ListView

我在做什么错?

这里是我的代码:

string[] h = getBetweenAll(thepage, "\" target=\"_blank\">", "</a>"); 
     foreach (string s in h) 
     listViewClickbank.Items.Add(new ListViewItem("")); 

     foreach (ListViewItem i in listViewClickbank.Items) 
     { 
      if (i.SubItems[0].Text == "(view mobile)") 
      { 
       i.Remove(); 
      } 
     } 

     foreach (ListViewItem i in listViewClickbank.Items) 
    { 
      if (i.SubItems[0].Text.Contains("recordTitle")) 
      { 
      i.Remove(); 
      } 
     } 

     string[] u = getBetweenAll(thepage, "<div class=\"description\">", "</div>"); 
     for (int i = 0; i < h.Length && i < listViewClickbank.Items.Count; i++) 
     { 
      listViewClickbank.Items[i].SubItems.Add(u[i]); 
     } 

在这条线出现错误:

listViewClickbank.Items[i].SubItems.Add(u[i]); 

回答

1

请注意,您所使用h.Length,不u.Length在你for循环的条件。您正在添加u的元素,而不是h,最有可能的是,u.Length小于h.Length,并且当您尝试访问u [i]时,您将获得Exception。它应该是:

string[] u = getBetweenAll(thepage, "<div class=\"description\">", "</div>"); 
for (int i = 0; i < u.Length && i < listViewClickbank.Items.Count; i++) 
{ 
    listViewClickbank.Items[i].SubItems.Add(u[i]); 
} 
+0

谢谢!有效 :) –