List <object>删除超过某个索引的对象(以及执行此操作的速度)

Jas*_*own 2 c# list

我将一堆网址存储在列表中,预计会有很多(最多约3,000,000,更常见的是50,000到200,000).

我需要做的一个例子:

ListOfStrings


    [0]www.google.ca  
    [1]www.yahoo.com  
    [2]www.wikipedia.com  
    [3]www.youtube.com  
    [4]www.gmail.com  
    [5]www.stackoverflow.com  
    [6]www.steam.com  
    [7]www.microsoft.com  
    [8]www.ebay.com  

我需要删除所有字符串[5].我应该创建一个循环吗?

while (ListOfStrings.Count>5)
{
    ListOfStrings[6].Remove
}
Run Code Online (Sandbox Code Playgroud)

或者有更快的方法吗?(我想可能会使用.GetRange(0, ListOfStrings.IndexOf())但是最多需要删除25个字符串,因此我不确定哪个字符串更有效率)

我也需要做反向(在Entry [5]之前的所有内容)只有我需要删除更多的字符串,而不是25最大.它将更像是50,000次删除.

Rez*_*aei 6

正如我在评论中提到的:

如果您不想触摸列表,只想获取一个子集:

  • 如果要从列表的开头获取子集,可以使用Take方法:

    var result= list.Take(5).ToList(); //The result is first 5 items

  • 如果你想从列表中间取一个子集,你可以使用SkipTake方法:

    var result = list.Skip(3).Take(5).ToList(); //the result is item 4 to 8

如果要从列表中删除项目:

  • 你可以使用RemoveRange:

    list.RemoveRange(5, 4); //it changes list and removes all items above 5