5

私はList<sting>5つのエントリを持っています。[0],[1],[2],[3],[4].

私が使用すると、List.Clear()すべてのアイテムが削除されます。

[1] など、特定のアイテムまで削除する必要があります。つまり、私のリストには2 items [0] and [1]. どのようにC#でそれを行うのですか?

4

5 に答える 5

8

インデックス1の後のすべてのアイテムを削除する場合(つまり、最初の 2 つのアイテムのみを保持する場合):

if (yourList.Count > 2)
    yourList.RemoveRange(2, yourList.Count - 2);

インデックスに関係なく、値が「[1]」のアイテムの後のすべてのアイテムを削除する必要がある場合:

int index = yourList.FindIndex(x => x == "[1]");
if (index >= 0)
    yourList.RemoveRange(index + 1, yourList.Count - index - 1);
于 2011-06-16T14:02:21.960 に答える
4

GetRange メソッドを使用できます。

そう..

myList = myList.GetRange(0,2);

..上記で求めているものを提供します。

于 2011-06-16T13:55:06.567 に答える
2

List.RemoveWhere(Predicate). を使用できます。または、for ループを実行することもできます。逆方向にループして、目的のアイテムまでアイテムを削除します。

for(var i = List.Count()-1; i>=0; i--) {
   var item = List[i];
   if (item != "itemThatYourLookingFor") {
      List.Remove(item);
      continue;
   }
   break;
}
于 2011-06-16T13:56:19.297 に答える
0
List<string> strings = new List<string>{"a", "b", "c", "d", "e"};
List<string> firstTwoStrings = strings.Take(2).ToList();
// firstTwoStrings  contains {"a", "b"}

メソッドはTake(int count)カウント項目を残します。

于 2011-06-16T13:59:37.233 に答える
0

開始インデックスと削除するアイテムの数を指定して、リストから範囲を削除できます。

var items = new List<string> {"0", "1", "2", "3", "4", "5"};
var index = items.IndexOf("1") + 1;

if (index >= 0)
{
    items.RemoveRange(index, items.Count - index);
}
于 2011-06-16T14:01:11.180 に答える