将int范围添加到Queue <int> </int>的最佳实践是什么

时间:2013-08-18 07:32:38

标签: c#

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

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

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

2 个答案:

答案 0 :(得分: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);

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

答案 1 :(得分:1)

你可能喜欢

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

但这只是一个品味问题。