2

オブジェクトの配列があり、特定の長さの後にすべてのアイテムを削除したい場合

たとえば、配列の startlength が 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);
4

3 に答える 3

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

[注: これにより、元のリストを変更するのではなく、元のリスト プレースホルダー (myList) に割り当てる新しいリストが作成されます。]

于 2013-02-27T01:20:22.913 に答える
2

あなたは探しているRemoveRange

例:

if(myList.Count() > maxLength) {
    myList.RemoveRange(maxLength, (mylist.Count()-maxLength));
}
于 2013-02-27T01:22:43.593 に答える
2

Take動作する可能性がありToListます(また、新しいリストが作成されます)

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

リストを保持する必要がある場合は、RemoveRangeもあります。

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

注: リストのアイテム数が maxLength よりも少ない場合でも、サンプルが機能することを確認してください。

于 2013-02-27T01:21:39.230 に答える