C# 游戏控制台是StringBuilder、String[]还是其他?

C# 游戏控制台是StringBuilder、String[]还是其他?,c#,string,console,stringbuilder,C#,String,Console,Stringbuilder,我正在制作一个XNA游戏机,它应该在添加时绘制输出线。我只想画最后10行,但我不知道如何生成实际的输出字符串 我试图使用StringBuilder收集其中的所有行,然后将最后一行读入String,但结果是StringBuilder没有特定的行检索方法。我尝试使用String[],但随着时间的推移,它增加了显著的延迟。我该怎么做呢?如果您不再需要超过10行的邮件,可以使用键入的 根据渲染方式的不同,这可能是管理数据的最简单方法。我希望能够向上“滚动”并查看自应用程序启动以来累积的所有控制台行,但对

我正在制作一个XNA游戏机,它应该在添加时绘制输出线。我只想画最后10行,但我不知道如何生成实际的输出字符串


我试图使用
StringBuilder
收集其中的所有行,然后将最后一行读入
String
,但结果是
StringBuilder
没有特定的行检索方法。我尝试使用
String[]
,但随着时间的推移,它增加了显著的延迟。我该怎么做呢?

如果您不再需要超过10行的邮件,可以使用键入的


根据渲染方式的不同,这可能是管理数据的最简单方法。

我希望能够向上“滚动”并查看自应用程序启动以来累积的所有控制台行,但对于输出,我将从10行开始,然后再从那里开始。你必须做出权衡。您可以使用一个
列表
,该列表有O(1)个查找速度,但插入时有O(1)-O(n)个速度(取决于列表是否有足够的容量支持新项)。或者,您可以使用
LinkedList
,它的插入速度为O(1),但随机查找总是O(n)。这个决定取决于你阅读和写作的频率。也许最好的解决方案是对所有消息使用
链接列表
,对最后10条消息使用
列表
队列
。现在,我将使用队列(10)进行输出,使用StringBuilder收集所有数据并在退出时保存到文件,但我希望在“滚动”控制台窗口时能够用相应的行填充队列。