请在下面找到我的代码以生成网址列表。
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。
有没有解决方法可以解决这个问题。
谢谢
答案 0 :(得分:4)
这将创建251,874,000个字符串的列表。然后使用ToArray
从中创建一个新数组。之后,您拨打ArrayToDataTable
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());
}
}