我需要将一堆项目添加到数据结构中,然后以随机顺序访问其中的所有项目。我怎样才能做到这一点?我可以用什么数据结构随机访问它的内容?
更具体地说,我目前将URL添加到一个List<string>
对象。它们的添加方式使得相邻的URL可能位于同一台服务器上。当我使用Parallel.ForEach语句访问List时,它只是按照我添加它们的顺序返回项目。通常这没问题,但是当我并行发出Web请求时,这往往会压倒一些服务器并导致超时。当我在对象上运行一个Parallel.ForEach语句时(即不是按照我添加它们的顺序),我可以使用哪种数据结构将以更随机的方式返回项目?
也许只是[shuffle](http://stackoverflow.com/questions/273313/randomize-a-listt-in-c-sharp)一旦你添加了所有物品的列表? – Blorgbeard 2013-05-13 23:33:08
真的是你想要的随机数?或者你想有一个服务器列表,每个服务器都有一个URL列表,然后在服务器上运行Parallel.ForEach,但不在URL上运行? – 2013-05-13 23:34:41
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2013-05-13 23:34:51