在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);
myList = myList.Take(maxLength).ToList();
[注意:这会创建一个新的列表,我们将其分配给原始列表占位符(myList(,而不是原地更改原始列表。]
Take
和ToList
可能工作(也会创建新列表(
myList = myList.Take(maxLength).ToList();
如果你需要保留列表-RemoveRange也在那里:
myList.RemoveRange(maxLength, myList.Count - maxLenght);
注意:当列表中的项目少于maxLength时,请确保示例适用于这些情况。
您正在寻找RemoveRange
示例:
if(myList.Count() > maxLength) {
myList.RemoveRange(maxLength, (mylist.Count()-maxLength));
}