我有一个字符串列表,我不断在此列表中添加元素。
我不希望这个列表超过6个元素(索引0到5)。所以一旦它到达索引[5],我不想增长列表,而是在列表的开头添加元素或者做类似的事情。在任何时候,我都会打印最后添加到此列表中的最后3个项目。我在下面尝试过,但我认为这是一段糟糕的代码。在这段代码之后,我会得到列表计数并打印UrlList[UrlList.Count - 1],UrlList[UrlList.Count - 2];,UrlList[UrlList.Count - 3]
请帮我吧
if (UrlList.Count == 5)
{
var move = UrlList[5];
UrlList.RemoveAt(5);
UrlList.Insert(0, move);
move = UrlList[4];
UrlList.RemoveAt(4);
UrlList.Insert(1, move);
move = UrlList[3];
UrlList.RemoveAt(3);
UrlList.Insert(2, move);
UrlList.Add(uri.ToString());
}
else
{
UrlList.Add(uri.ToString());
}
答案 0 :(得分:2)
如果您希望最新项目成为列表中的最后项目,您可以使用以下代码:
const int Max_Capacity = 6;
if (UrlList.Count >= Max_Capacity)
UrlList.RemoveAt(0); // <- oldest (first) item should be removed
UrlList.Add(uri.ToString());
...
// Printing out the lastest 3 items:
int start = UrlList.Count <= 3 ? 0 : UrlList.Count - 3;
for (int i = start; i < UrlList.Count; ++i)
Console.Out.WriteLine(UrlList[i]);
答案 1 :(得分:0)
我认为你最好使用%Operator - 。
在您的情况下,您可以使用:
UrlList.Insert((UrlList.count%6),move);