c#中ArrayList有几种方式来移除元素?
在 C# 中,ArrayList 类提供了多种方式来移除元素:
使用 Remove 方法移除单个元素,需要提供要移除的元素的值。这个方法只移除第一个匹配的元素。
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
list.Remove(2); // 移除元素 2
使用 RemoveAt 方法移除指定位置上的元素,需要提供要移除元素的索引。
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
list.RemoveAt(1); // 移除位置为 1 的元素 2
使用 Clear 方法清空整个 ArrayList。
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
list.Clear(); // 清空 ArrayList
使用 RemoveRange 方法移除连续的元素,需要提供开始索引和元素数量。
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.RemoveRange(1, 2); // 移除位置为 1 和 2 的元素 2,3
使用 RemoveAll 方法可以移除 ArrayList 中符合特定条件的所有元素。RemoveAll 方法接受一个 Predicate<T> delegate,它需要实现一个 bool 返回类型的方法,用来判断每个元素是否需要移除。
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.RemoveAll(x => (int)x % 2 == 0); //移除所有偶数
这段代码中,RemoveAll 方法会移除 ArrayList 中所有偶数(x % 2 == 0)。
注意,RemoveAll 方法会更改 ArrayList 的大小,它返回移除的元素数量,如果不需要这个返回值,则可以直接忽略。