在C#中,如何删除数组中某个长度之后的项

本文关键字:之后 数组 删除 何删除 | 更新日期: 2023-09-27 18:01:13

如果我有一个对象数组,并且我想在一定长度的之后删除所有项目

例如,如果数组的startlength是10,并且我只想保留数组中的前5个项目,并删除之后的所有项目。注意:数组可能小于5,这将不起任何作用。

  int startLength = 10;
  int maxLength = 5;
  List<MYObject> myList = CreateListofObjects(startLength);

我想要像"RemoveAfter"这样的东西,其中"RemoveAfther"会做这样的事情:

  myList = myList.RemoveAfter(maxLength);
  Assert.IsTrue(myList.Count() ==5);

在C#中,如何删除数组中某个长度之后的项

myList = myList.Take(maxLength).ToList();

[注意:这会创建一个新的列表,我们将其分配给原始列表占位符(myList(,而不是原地更改原始列表。]

TakeToList可能工作(也会创建新列表(

 myList = myList.Take(maxLength).ToList();

如果你需要保留列表-RemoveRange也在那里:

 myList.RemoveRange(maxLength, myList.Count - maxLenght);

注意:当列表中的项目少于maxLength时,请确保示例适用于这些情况。

您正在寻找RemoveRange

示例:

if(myList.Count() > maxLength) {
    myList.RemoveRange(maxLength, (mylist.Count()-maxLength));
}