在阅读An Extensive Examination of Data Structures Using C# 2.0之后,我理解C#中的队列有一个内部数组,其中队列的元素按顺序存储,一个起始索引和一个结束索引。我不明白你为什么不能读或写第n个元素。你所要做的只是return array[(n + start) % array.Length]
。当然,如果n在范围内。
这有时很有用。
答案 0 :(得分:0)
您可以使用ElementAt
读取第n个元素:
var element = q.ElementAt(index);
由于这是IEnumerable
扩展方法,您必须添加using System.Linq;
但是,你不能写第n个元素,因为那不是Queue的用途。这将打破队列的最重要特征,即先入先出。如果您可以在某个索引处插入项目,那么首先使用队列是没有意义的。