我需要创建一些队列来保存数组的空闲位置。所以我持有一些包含下一个空闲位置的队列 - 我想知道将 int 范围添加到这个队列的有效方法是什么?
这是代码 - 但我不确定这是最佳实践
Queue<int> queue = new Queue<int>();
for(int i = 0; i < 10000; i++)
{
queue.Enqueue(i);
}
我需要创建一些队列来保存数组的空闲位置。所以我持有一些包含下一个空闲位置的队列 - 我想知道将 int 范围添加到这个队列的有效方法是什么?
这是代码 - 但我不确定这是最佳实践
Queue<int> queue = new Queue<int>();
for(int i = 0; i < 10000; i++)
{
queue.Enqueue(i);
}
不确定它是否会更有效,但在语法上肯定很短:
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。
你可能会喜欢
var queue = new Queue<int>(Enumerable.Range(0, 10000));
但这只是口味问题。