zoukankan      html  css  js  c++  java
  • 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相等的元素存在。

  • 相关阅读:
    21.09.12模拟 P2809 hzwer 爱折纸
    21.09.13模拟 保存名画
    21.09.13模拟赛 魔法传输
    21.09.13模拟 分割金币
    21.09.13模拟 友谊值
    21.09.10模拟 朗格拉日计数
    21.09.10模拟 雷神领域
    P4551 最长异或路径
    P2894 [USACO08FEB]Hotel G
    NOIP复习(总结套路)
  • 原文地址:https://www.cnblogs.com/jimcsharp/p/4892496.html
Copyright © 2011-2022 走看看