移除List<T>的元素

8 篇文章 0 订阅
2 篇文章 0 订阅

List<T>还提供几个方法用来从列表中移除元素,这些方法同样可以移除指定的元素,也可以移除一个或多个满足指定条件的元素,它们包括Clear()、Remove()、RemoveAll()、RemoveAt()、RemoveRange()。

和Find()等方法一样,可以通过Predicate<T>委托指定要移除的元素需要满足的条件。Remove()等方法的定义如下:

public void Clear();

public bool Remove(T item);

public int RemoveAll(Predicate<T> match);

public void RemoveAt(int index);

public void RemoveRange(int index, int count);


其中,item是类型为T的要删除的特定元素,注意它只是一个引用。match是Predicate<T>类型的委托,用来表示被移除元素需要满足的条件。

index是从0开始的要移除元素的索引,count表示要移除的元素个数。


下面的示例代码将演示如何使用这些函数从列表List<T>中移除元素,

首先创建一个List<string>列表对象strLst,

通过Remove("abc")将"abc"从strLst中移除,

再通过RemoveAt(3)移除列表中索引为3的元素。

通过RemoveAll(BeginWithA)将strLst中移除所有以A开始的字符串。

通过RemoveRange(1,3)从strLst中移除索引为1开始的3个元素,

最后通过Clear()移除列表中剩下的所有元素。


示例代码:

static void UseRemove()

{

string[] ary = {"begin", "ABC", "abc", "Iaha", "here", "Ing", "Big", "Aig", "Amer", "end"};//准备数据

List<string> strLst = new List<string>();

strLst.AddRange(ary);//将数据添加到List<string>

PrintList<string>("原数据", strLst);//打印数据

strLst.Remove("abc");//移除abc

PrintList<string>("第一次", strLst);

strLst.RemoveAt(3);//移除索引为3的元素

PrintList<string>("第二次", strLst);

strLst.RemoveAll(BeginWithA);//移除所有以A开始的字符串

PrintList<string>("第三次", strLst);

strLst.RemoveRange(1, 3);//移除从索引为1开始的3个元素

PrintList<string>("第四次", strLst);

strLst.Clear();//移除所有元素

PrintList<string>("第五次", strLst);

}


示例代码的输出如下,从中可以看出通过这些方法可以按照开发人员的需要从列表中移除不需要的元素。

注意,第5次由于所有元素都被移除,所以输出为空白。


原数据:begin ABC abc Iaha hehe Ing Big Aig Amer end

第一次:begin ABC Iaha hehe Ing Big Aig Amer end

第二次:begin ABC Iaha Ing Big Aig Amer end

第三次:begin Iaha Ing Big end

第四次:begin end

第五次:


注意:RemoveAll()只能移除列表中所有符合条件的元素,而Clear()是移除列表中任何元素。如果需要移除某个符合条件的元素,可以通过Find()先找到该元素的索引,然后通过RemoveAt()方法移除该元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值