打印添加到字符串列表中的最后3个元素

时间:2014-07-14 07:13:51

标签: c#

我有一个字符串列表,我不断在此列表中添加元素。 我不希望这个列表超过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());
    }

2 个答案:

答案 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);