0

我需要创建一些队列来保存数组的空闲位置。所以我持有一些包含下一个空闲位置的队列 - 我想知道将 int 范围添加到这个队列的有效方法是什么?

这是代码 - 但我不确定这是最佳实践

 Queue<int> queue = new Queue<int>();
 for(int i = 0; i < 10000; i++)
 {
      queue.Enqueue(i);
 }
4

2 回答 2

4

不确定它是否会更有效,但在语法上肯定很短:

var queue = new Queue<int>(Enumerable.Range(0, 10000));

或者,尝试基准测试:

var queue = new Queue<int>(10000);
for (int i = 0; i < 10000; i++)
    queue.Enqueue(i);

请注意在队列构造函数中使用容量参数,这应该可以防止重新分配。不幸的是没有“EnqueueRange”,所以我们必须在这里使用循环和 Enqueue。

于 2013-08-18T07:43:57.957 回答
1

你可能会喜欢

var queue = new Queue<int>(Enumerable.Range(0, 10000));

但这只是口味问题。

于 2013-08-18T07:44:09.020 回答