Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将int range添加到队列<;int>;_C# - Fatal编程技术网

C# 将int range添加到队列<;int>;

C# 将int range添加到队列<;int>;,c#,C#,我需要创建一些队列来保存数组的空闲位置。 因此,我持有一些包含下一个空闲位置的队列,我想知道将int范围添加到此队列的有效方法是什么 这是代码-但我不确定这是否是最佳实践 Queue<int> queue = new Queue<int>(); for(int i = 0; i < 10000; i++) { queue.Enqueue(i); } Queue Queue=new Queue(); 对于(int i=0;i

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

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

 Queue<int> queue = new Queue<int>();
 for(int i = 0; i < 10000; i++)
 {
      queue.Enqueue(i);
 }
Queue Queue=new Queue();
对于(int i=0;i<10000;i++)
{
排队。排队(i);
}

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

var queue = new Queue<int>(Enumerable.Range(0, 10000));
var queue=新队列(可枚举的.Range(0,10000));

或者,尝试基准测试:

var queue = new Queue<int>(10000);
for (int i = 0; i < 10000; i++)
    queue.Enqueue(i);
var queue=新队列(10000);
对于(int i=0;i<10000;i++)
排队。排队(i);

请注意在队列构造函数中使用了capacity参数,这将防止重新分配。不幸的是,这里没有“排队范围”,所以我们必须在这里使用带有排队的循环。

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

var queue = new Queue<int>(Enumerable.Range(0, 10000));
var queue=新队列(可枚举的.Range(0,10000));

或者,尝试基准测试:

var queue = new Queue<int>(10000);
for (int i = 0; i < 10000; i++)
    queue.Enqueue(i);
var queue=新队列(10000);
对于(int i=0;i<10000;i++)
排队。排队(i);
请注意在队列构造函数中使用了capacity参数,这将防止重新分配。不幸的是,这里没有“排队范围”,所以我们必须在这里使用带有排队的循环。

您可能会喜欢

var queue = new Queue<int>(Enumerable.Range(0, 10000));
var queue=新队列(可枚举的.Range(0,10000));
但这只是口味的问题。

你可能会喜欢

var queue = new Queue<int>(Enumerable.Range(0, 10000));
var queue=新队列(可枚举的.Range(0,10000));

但这只是品味的问题。

你的意思是想知道你是否能在一行中做到这一点?是吗?这是一个学术问题-这不是一个写作或错误的问题:)是的。。我想有一条线,这是一个相当昂贵的方式做事情-为什么你想明确存储每个免费的位置?如果您想要“最佳实践”响应,上下文是关键。例如,此处内容的生命周期是什么?循环缓冲是否足够?数据是什么?简单的“上次使用的偏移量,现在扫描空值”可以吗?(在许多情况下,这样做很好——即使“上次使用的偏移量”只是一个优化)Marc,我有一个容纳10000个单元格的数组——我需要找到下一个空闲单元格的位置,这就是我想使用此队列的原因。数组中的数据是某个对象类。我必须避免扫描对象阵列如果(A[i]!=1),那么它是一个自由位置……你的意思是想知道你是否可以在一行中完成它?是吗?这是一个学术问题-这不是一个写作或错误的问题:)是的。。我想有一条线,这是一个相当昂贵的方式做事情-为什么你想明确存储每个免费的位置?如果您想要“最佳实践”响应,上下文是关键。例如,此处内容的生命周期是什么?循环缓冲是否足够?数据是什么?简单的“上次使用的偏移量,现在扫描空值”可以吗?(在许多情况下,这样做很好——即使“上次使用的偏移量”只是一个优化)Marc,我有一个容纳10000个单元格的数组——我需要找到下一个空闲单元格的位置,这就是我想使用此队列的原因。数组中的数据是某个对象类。我必须避免扫描对象阵列如果(A[i]!=1),那么它是一个自由位置。。。。