List<T>的IndexOf方法和Remove方法
2023-09-27 14:24:13 时间
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相等的元素存在。
相关文章
- JQuery 方法查询大全
- leetcode 114.Flatten Binary Tree to Linked List (将二叉树转换链表) 解题思路和方法
- Python学习-将list列表写入文件并读取方法汇总
- 什么才是有效的工程教育的方法?
- C#,递归方法实现双向链表(Doubly Linked List)的反转(Reverse)算法与源代码
- jquery遍历的json有两层list时的解决方法
- Java编程:删除 List 元素的三种正确方法
- 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
- 利用matlab求图像均值和方差的几种方法
- String js删除字符串的最后一个字符三种方法
- List的Clear方法与RemoveAll方法用法小结
- jquery 中$.post获取MVC Controller中JsonResult返回包含LIst<Model>类型的子List<Model>的高级使用方法
- Eclipse 官方简体中文语言包下载地址及安装方法
- 【C++: list的使用方法(总结)】
- android 反序列化XmlPullParse之如何创建一个对应的InputStream的对象以便于调用setInput方法
- 封装算法: 模板方法(Template Method)模式
- JS学习第10天——ES5中面向对象(原型和原型链、forEach、map、filter、some、every、trim、Object.keys、Object.defineProperty方法的使用)
- C# DataTable 和List之间相互转换的方法(转载)
- Python学习-将list列表写入文件并读取方法汇总
- 在 Java 中初始化 List 的五种方法
- 设计模式 - 模板方法
- Javascript定义类(class)的三种方法
- Java的集合排序:Collections.sort、list.sort和list.stream().sorted方法详解
- List集合常用方法java与c#