ArrayList[] adUrls;
private void GetAdUrl(WebBrowser[] webs)
        {
            adUrls = new ArrayList[webs.Length];
 
            for (int i = 0; i < webs.Length;i++ )
            {
                adUrls[i] = new ArrayList();
                Regex r = new Regex(Reg(webs[i].Url.Host), RegexOptions.IgnoreCase | RegexOptions.Compiled);
                Match m = r.Match(webs[i].DocumentText.ToLower());
                while (m.Success)
                {                    if (!adUrls[i].Contains((webs[i].Url.ToString().Replace(GetSurf(webs[i].Url.Host), "")) + @"view.php?" + m.Value))
                    {
                        adUrl[i]s.Add((webs[i].Url.ToString().Replace(GetSurf(webs[i].Url.Host), "")) + @"view.php?" + m.Value);                    }
                    else
                    {                    }
                    m = m.NextMatch();
                }
                foreach (string str in adUrl[i])
                {
                    listBox1.Items.Add(str);
                }
            }
        }
listBox1中什么都没有。ArrayList[]可不可以这么用啊!

解决方案 »

  1.   

    ArrayList adUrls;
    private void GetAdUrl(WebBrowser[] webs)
            {
                adUrls = new ArrayList(webs.Length);            for (int i = 0; i < webs.Length;i++ )
                {
                    adUrls[i] = new ArrayList();
                    Regex r = new Regex(Reg(webs[i].Url.Host), RegexOptions.IgnoreCase | RegexOptions.Compiled);
                    Match m = r.Match(webs[i].DocumentText.ToLower());
                    while (m.Success)
                    {                    if (!adUrls[i].Contains((webs[i].Url.ToString().Replace(GetSurf(webs[i].Url.Host), "")) + @"view.php?" + m.Value))
                        {
                            adUrls.Add((webs[i].Url.ToString().Replace(GetSurf(webs[i].Url.Host), "")) + @"view.php?" + m.Value);                    }
                        else
                        {                    }
                        m = m.NextMatch();
                    }
                    foreach (string str in adUrl)
                    {
                        listBox1.Items.Add(str);
                    }
                }
            }
      

  2.   

    当然可以这么用的.你设断点看看
                        if (!adUrls[i].Contains((webs[i].Url.ToString().Replace(GetSurf(webs[i].Url.Host), "")) + @"view.php?" + m.Value)) 
                        { 
                            adUrl[i]s.Add((webs[i].Url.ToString().Replace(GetSurf(webs[i].Url.Host), "")) + @"view.php?" + m.Value);                     } 
                        else 
                        {                     } 
    这里的if条件是否成立过.即adUrl[i]s.Add 是否添加进了内容.
      

  3.   

      foreach (string str in adUrl[i]) 
                    { 
                        listBox1.Items.Add(str); 
                    } 
    改为
      foreach (object obj in adUrl[i]) 
                    { 
                             string str=(string)obj;
                        listBox1.Items.Add(str); 
                    } 这样,你再试试
      

  4.   

    if条件是不加入相同的元素,不使用ArrayList[] adUrls时成立