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相等的元素存在。

  • 相关阅读:
    HDU4611+数学
    HDU4612+Tarjan缩点+BFS求树的直径
    HDU4602+推导公式
    HDU4607+BFS
    HDU1353+贪心
    HDU4545+LCS
    HDU4548+素数
    HDU4539+状态压缩DP
    HDU2110+母函数
    HDU1569+最大点权集
  • 原文地址:https://www.cnblogs.com/jimcsharp/p/4892496.html
Copyright © 2011-2022 走看看