如何从列表中一起删除 n 个项目?
例如,在包含 10 个元素的列表中,我想使用 for cicle 一起删除 3 个项目
如果您想安全地删除前三项:
list.RemoveRange(0, Math.Min(3, list.Count));
这将删除最多三个项目,但如果列表中的项目少于三个,则不会引发异常。如果列表中有 0、1 或 2 个项目,它将删除相应数量的项目。
要在 C# 8 或更高版本中处理列表/数组的切片而不对其进行修改,我建议使用 Ranges。
要枚举没有前 n 个元素的列表(如果您不想修改列表),可以使用
Skip
。
// this will take all the elements except for the first three (these will be skipped).
IEnumerable<SomeThing> withoutFirstThree = list.Skip(3);
如果您不想枚举到列表末尾,Take
配合使用。正如 Skip 文档中提到的:
Take 和 Skip 方法是功能上的补充。给定一个序列 coll 和一个整数 n,连接 coll.Take(n) 和 coll.Skip(n) 的结果会产生与 coll 相同的序列。
如果您想使用
List
而不是 IEnumerable
,您可以在返回的 .ToList()
上使用 Enumerable
,但这种方法可能不适合您的用例。
RemoveRange
,正如其他答案已经建议的那样。
只删除前 3 项?
list.RemoveRange(0, 3);
删除 3 个从
index=0
开始的项目。