在三个项目的列表中循环出队 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 一次将一个字符串出列到 Item1
、Item2
、Item3
,最后 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(),
});
}
我有一个包含 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
检查i < queuestr.Count
不合逻辑。这两个数字之间有什么关系?在某些时候 i
的值将高于队列中的项目数。
最好使用 while 循环。检查> 2
是为了确保你可以出队三次。
while (queuestr.Count > 2) {
items.Add(new queuestrtem {
Item1 = queuestr.Dequeue(),
Item2 = queuestr.Dequeue(),
Item3 = queuestr.Dequeue(),
});
}