-3

请在我的代码下方找到生成 URL 列表。

List<string> urls = new  List<string>();   
int curr_Page = 1;
int end_Page = 2000;

for(int pages = curr_Page; pages < end_Page;pages++)
{
    for (int cno = 1;cno < 126001; cno++)   
    {   
          urls.Add("http://sources.domerig.com/list.php?cno=" + cno.ToString() + "&page=" + pages.ToString());   
    }
}
return  ScriptUtils.ArrayToDataTable("url", urls.ToArray());   
}   

上面的代码给出了 SystemOutOfMemoryException。

有没有办法解决这个问题。

谢谢

4

1 回答 1

4

这将创建一个包含 251,874,000 个字符串的列表。然后你用它创建一个新数组ToArray。之后你调用ArrayToDataTablewhich sems 来创建一个新DataTable的。

你想知道为什么你得到一个OutOfMemoryException?为什么?

如果您需要DataTable使用一列创建一个Url,您可以首先执行此操作:

DataTable tblUrls = new DataTable();
tblUrls.Columns.Add("Url");
for(int pages = curr_Page; pages < end_Page;pages++)
{
    for (int cno = 1;cno < 126001; cno++)   
    {   
        tblUrls.Rows.Add("http://sources.domerig.com/list.php?cno=" + cno.ToString() + "&page=" + pages.ToString());
    }
}
于 2013-10-09T07:41:02.717 回答