删除System.Collections.Generic.List<T>
中第n个元素之后的每个元素的最简单方法是什么?
答案 0 :(得分:32)
如果您可以使用RemoveRange
方法,只需执行以下操作:
list.RemoveRange(index, count);
索引是从何处开始,count是要移除多少。因此,要删除从某个索引到结尾的所有内容,代码将为:
list.RemoveRange(index, list.Count - index);
相反,您可以使用:
list.GetRange(index, count);
但是这会创建一个新列表,可能不是你想要的。
答案 1 :(得分:10)
没有LINQ快速......
while (myList.Count>countIWant)
myList.RemoveAt(myList.Count-1);
答案 2 :(得分:3)
答案 3 :(得分:2)
如果LINQ不是一个选项,您可以向后遍历列表:
for(int i = list.Count - 1; i >= index; i--)
{
list.RemoveAt(i);
}
答案 4 :(得分:1)
以下是执行此操作的示例应用
static void Main(string[] args)
{
List<int> lint = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine("List Elements");
lint.ForEach(delegate(int i) { Console.WriteLine(i); });
lint.RemoveRange(8, lint.Count - 8);
Console.WriteLine("List Elements after removal");
lint.ForEach(delegate(int i) { Console.WriteLine(i); });
Console.Read();
}