zoukankan      html  css  js  c++  java
  • List<T>的IndexOf方法和Remove方法

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

  • 相关阅读:
    tomcat设置编码utf8
    servlet详细理解
    设置utf8编码问题
    yarn状态机的可视化
    以卵石游戏(杭州电1527)
    Android Studio虚拟机配置虚拟键盘
    linux网络编程--跳水send和recv
    基于redis AE异步网络架构
    谈加班文化
    ios8加入通知栏开始
  • 原文地址:https://www.cnblogs.com/Antech/p/2301459.html
Copyright © 2011-2022 走看看