C# 从列表中删除n行

C# 从列表中删除n行,c#,list,C#,List,如何从列表中删除最后两行 目前,我正在手动删除2行,如下所示。但是,可能有一个实例,我必须将要删除的行数定义为n。因此,它将从列表底部删除n行。我怎样才能做这个改变 rows.RemoveAt(rows.Count - 1); rows.RemoveAt(rows.Count - 2); 您可以使用LINQ: rows = rows.Take(rows.Count - n).ToList(); 您可以使用LINQ: rows = rows.Take(rows.Count - n).ToLis

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

目前,我正在手动删除2行,如下所示。但是,可能有一个实例,我必须将要删除的行数定义为n。因此,它将从列表底部删除n行。我怎样才能做这个改变

rows.RemoveAt(rows.Count - 1);
rows.RemoveAt(rows.Count - 2);
您可以使用LINQ:

rows = rows.Take(rows.Count - n).ToList();
您可以使用LINQ:

rows = rows.Take(rows.Count - n).ToList();
您可以使用:

您可以使用:


正如Spender所说,您的代码中存在一个潜在的问题。我称之为索引竞争条件。删除最后一个元素后,其他元素将成为新的最后一个元素。对于索引集合,您必须注意这一点。Keyd集合不会受到影响

除了其他人所说的关于使用RemoveAnge if Available或LINQ的内容之外,您还可能得到了错误的收集类型


和分别是先进先出和先进后出案例的专用集合。

正如Spender所说,您的代码中存在一个潜在问题。我称之为索引竞争条件。删除最后一个元素后,其他元素将成为新的最后一个元素。对于索引集合,您必须注意这一点。Keyd集合不会受到影响

除了其他人所说的关于使用RemoveAnge if Available或LINQ的内容之外,您还可能得到了错误的收集类型


和分别是先进先出和先进后出案例的专用集合。

代码中存在错误。删除最后一个具有rows.removetrows.Count-1;的项目后;,删除最后一项的代码是rows.removetrows.Count-1;。你的代码中有一个bug。删除最后一个具有rows.removetrows.Count-1;的项目后;,删除最后一项的代码是rows.removetrows.Count-1;。我并没有把东西拆下来,但从技术上讲,你们并没有拆下两件东西。您可以创建新列表。原来的列表是不变的,如果你需要删除那里的项目,它不会发生。我没有写下来,但从技术上讲你不会删除两个项目。您可以创建新列表。原始列表保持不变,如果您需要删除其中的项目,则不会发生这种情况。