List<T>的IndexOf方法和Remove方法

Microsoft地址

List<T>的IndexOf()方法

如果T是值类型的,就按照比较值的方法从列表的第一个元素开始逐个匹配,如果T是引用类型,就比较引用是否相同

举例如下:

class A
{
      public int x;
      public A( int x)
      {
           this .x = x;
      }
}
 
List<A> listA = new List<A>();
listA.Add( new A(3) );
listA.Add( new A(4) );
listA.Add( new A(5) );
listA.Add( new A(54) );
Console.WriteLine( listA.IndexOf( new A(3) ) );

 自定义的类是引用类型,因此IndexOf按照比较引用的方式查找元素,当然找不到,打印-1,如果A被定义成结构体,则可以找到该元素,打印0

 

Remove方法也是这个道理,移除的方式取决于T的类型

只是HashSet<T>和List<T>的Remove方法稍有不同:

HashSet<T>中不允许有重复元素而List<T>允许,HashSet<T>调用Remove方法后 如果移除成功,就可以判断这个集合中已经不存在刚刚被移出去的元素,而List<T>调用Remove(t1)方法后只移除掉第一个匹配到的 元素,不能保证此集合中没有其他的与t1相等的元素存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值