Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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#中队列的特定元素(对于System.Collections中定义的类队列),而不使用foreach_C#_Enumerator - Fatal编程技术网

跳到C#中队列的特定元素(对于System.Collections中定义的类队列),而不使用foreach

跳到C#中队列的特定元素(对于System.Collections中定义的类队列),而不使用foreach,c#,enumerator,C#,Enumerator,我使用队列存储我定义的类的成员。 在特定的固定时间间隔之后,我需要评估是否有对象添加到队列中,如果已经添加了对象,则对其进行处理以获得所需的信号 现在,我不希望每次都使用foreach循环,因为它将遍历队列的每个成员。 我只想找到一种方法,跳到上次处理过的元素,这样我就可以处理新的信息 队列确实会退出队列,但只有在到达固定值(例如200个元素)后才会退出。 因此,最后200个元素被保留 没有foreach/enumerator,有什么好方法可以做到这一点 我正在使用一个线程排队/退队,另一个线程

我使用队列存储我定义的类的成员。 在特定的固定时间间隔之后,我需要评估是否有对象添加到队列中,如果已经添加了对象,则对其进行处理以获得所需的信号

现在,我不希望每次都使用foreach循环,因为它将遍历队列的每个成员。 我只想找到一种方法,跳到上次处理过的元素,这样我就可以处理新的信息


队列确实会退出队列,但只有在到达固定值(例如200个元素)后才会退出。 因此,最后200个元素被保留

没有foreach/enumerator,有什么好方法可以做到这一点

我正在使用一个线程排队/退队,另一个线程处理信息。在达到200个元素后,它将保持队列中的计数。
我可以使用foreach,但我想通过跳到之前直接处理的元素来节省一些处理

一种方法是使用queue作为queue-dequeue和process。如果您需要存储“已处理的项目”-只需将它们放入另一个队列/列表/任何东西


如果需要正确的多线程访问(基于“锁定”标记)-使用。

这与锁/线程有什么关系?这是对生产者/消费者的又一次挑战吗?“队列确实会退出队列,但只有在达到固定的200个元素后才会退出。我还想保留一些已处理的元素。”所以队列只存储项目,直到达到200个元素,然后清除(大部分)它?这听起来不像队列的正常行为,队列通常用于控制资源有限的流。您可以切换到
列表
并使用索引。您不存储处理后的元素索引并在以后使用它吗?@HackerMan OP的问题是您不能在队列上使用索引。您不使用
列表