在三个项目的列表中循环出队 in.NET

Loop dequeue in list of three items in.NET

我有一个包含 18 个元素的字符串类型的队列,但这可能会有所不同。

我的代码:

var items = new List<BaseClass>();

Queue<string> queuestr = new Queue<string>();
for (int i = 0; i < 18; i++)
{
    queuestr.Enqueue("line - " + i.ToString());
}

for (int i = 0; i < queuestr.Count; i++)
{
    items.Add(new queuestrtem
    {
        Item1 = queuestr.Dequeue(),
        Item2 = queuestr.Dequeue(),
        Item3 = queuestr.Dequeue(),
    });
}

它的作用:

queuestr 一次将一个字符串出列到 Item1Item2Item3,最后 items 包含从 "line - 0" 到 "line - 14"。 由于某些原因 "line - 15" 到 "line - 18" 留在队列中

我想要的:

items 包含从 "line - 0" 到 "line - 18" 的字符串 - 来自 queuestr

的所有字符串

检查i < queuestr.Count不合逻辑。这两个数字之间有什么关系?在某些时候 i 的值将高于队列中的项目数。

最好使用 while 循环。检查> 2是为了确保你可以出队三次。

while (queuestr.Count > 2) {
    items.Add(new queuestrtem {
        Item1 = queuestr.Dequeue(),
        Item2 = queuestr.Dequeue(),
        Item3 = queuestr.Dequeue(),
    });
}