在.net中包含三个项目的列表中循环dequeue

本文关键字:列表 循环 dequeue net 包含三 项目 | 更新日期: 2023-09-27 17:51:02

我有一个字符串类型的队列,包含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每次将一个字符串解队列到Item1, Item2, Item3,最后items包含从line - 0到line - 14的字符串。由于某些原因,"line - 15"到"line - 18"仍然在队列中

我想要的:

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

在.net中包含三个项目的列表中循环dequeue

检查i < queuestr.Count不符合逻辑。这两个数字之间的关系是什么?在某一时刻,i的值将大于队列中的项目数。

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

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