从列表中删除n行

时间:2018-11-03 19:41:03

标签: c# list

如何从列表中删除最后两行。

目前,我正在手动删除两行,如下所示。但是,在某些情况下,我必须将要删除的行数定义为n。因此,它将从列表底部删除n行。我该如何进行更改?

rows.RemoveAt(rows.Count - 1);
rows.RemoveAt(rows.Count - 2);

3 个答案:

答案 0 :(得分:7)

您可以使用RemoveRange

rows.RemoveRange(rows.Count - n, n);

答案 1 :(得分:1)

您可以使用LINQ:

rows = rows.Take(rows.Count - n).ToList();

答案 2 :(得分:1)

正如Spender所说,您的代码中存在潜在的问题。我称之为“索引竞态条件”。删除最后一个元素后,其他东西将成为新的最后一个元素。使用索引集合时必须注意这一点。键控集合不受此影响。

除了其他人所说的关于使用“ RemoveRange”(如果有)或LINQ的说法之外,您还有可能得到了错误的集合类型。

Queue[T]Stack[T]是分别用于先进,先出和先进先出案例的专用集合。