如果我有一个对象数组,我想在一定长度后删除所有项目
例如,如果数组的起始长度为10,并且我只想保留数组中的前5个项目,并在此之后删除所有内容。注意:数组可能小于5,什么都不做。
int startLength = 10;
int maxLength = 5;
List<MYObject> myList = CreateListofObjects(startLength);
我想要像“RemoveAfter”这样的东西,其中“RemoveAfter”会做这样的事情:
myList = myList.RemoveAfter(maxLength);
Assert.IsTrue(myList.Count() ==5);
答案 0 :(得分:7)
myList = myList.Take(maxLength).ToList();
[注意:这会创建一个新列表,我们将其分配给原始列表占位符(myList),而不是更改原始列表。 ]
答案 1 :(得分:2)
Take
和ToList
可能有用(也会创建新列表)
myList = myList.Take(maxLength).ToList();
如果您需要保留列表 - RemoveRange也在那里:
myList.RemoveRange(maxLength, myList.Count - maxLenght);
注意:确保样本适用于列表的项目数少于maxLength的情况。
答案 2 :(得分:2)
您正在寻找RemoveRange
示例:
if(myList.Count() > maxLength) {
myList.RemoveRange(maxLength, (mylist.Count()-maxLength));
}