C# .Net List中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,List删除汇总

时间:2021-08-12 00:37:16

在List<T>中删除主要有Remove()、RemoveAt()、RemoveRange()、RemoveAll()这几个方法。下面一一介绍使用方法和注意点。

我们以List<string>举例

var strList = new List<string> { "aa", "ba", "cc", "dd", "ee", "ff" };

一、Remove()删除List中匹配到的第一个项,参数为List<T>中的T,返回类型为bool,成功删除返回True,失败或者没有找到返回False。例如:

var rt =  strList.Remove("aa");

二、RemoveAt()删除指定索引的一项。参数为int ,表示索引。返回类型为void。例如:

strList.RemoveAt();

三、RemoveRange()删除指定索引段的项,第一个参数为删除的起始索引,第二个参数为删除的个数。返回类型为void。例如:

strList.RemoveRange(, );

四、RemoveAll()删除所有匹配到的项,参数是一个Predicate<T> 委托,用于定义要删除的元素应满足的条件。返回类型为int型,表示删除的个数。例如:

//拉姆达表达式
var rt = strList.RemoveAll(j=>j.Contains("a"));
//自定义条件
private static bool IsDel(string str)
{
return str.Contains("a");
}
var rt = strList.RemoveAll(IsDel);

C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,List<T>删除汇总的更多相关文章

  1. 举例子说明ubuntu中remove,autoremove,purge区别

    转自:慎用 apt-get autoremove !   apt-get 提供了一个用于下载和安装软件包的简易命令行界面.卸载软件包主要有这3个命令 remove – 卸载软件包autoremove ...

  2. list&comma;set等集合遍历时,不能remove集合中的元素。需要new一个Object或者list&comma;set&comma;里面add需要删除的元素,等集合遍历完了进行remove&lpar;Object&rpar;或者removeAll&lpar;list&sol;set&rpar;操作

    list,set等集合遍历时,不能remove集合中的元素.需要new一个Object或者list,set,里面add需要删除的元素,等集合遍历完了进行remove(Object)或者removeAl ...

  3. Java ArrayList在foreach中remove的问题分析

    目录 iterator itr.hasNext 和 itr.next 实现 倒数第二个元素的特殊 如何避坑 都说ArrayList在用foreach循环的时候,不能add元素,也不能remove元素, ...

  4. List中remove元素的理解

    今天写了个简单的list中remove元素的方法,结果报错... List<String> ll = Arrays.asList("1","2",& ...

  5. 【转载】C&num;中ArrayList使用RemoveRange移除一整段数据

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,如果需要移除ArrayList集合中指定索引位置开始的一整段元素对象,则可以使用ArrayList集合中的RemoveRange方法 ...

  6. 使用List中remove方法时需要注意的问题

    String str1 = new String("1"); String str2 = new String("2"); String str3 = new ...

  7. ArrayList中remove方法和set&lpar;null&rpar;的区别

    在分析源码ArrayList.remove()时,偶然发现了一个疑惑的点,就是:源码也是将最后一个对象的引用指向null(源码:elementData[--size] = null; // clear ...

  8. &period;Net5 下Dictionary 为什么可以在foreach中Remove

    在一个讨论群里,看见有人说Dictionary可以在foreach中直接调用Remove了,带着疑问,写了简单代码进行尝试 class Program { static void Main(strin ...

  9. Python中remove&comma;pop&comma;del的区别

    先上题:写出最终打印的结果 a = [1, 2, 3, 4] for x in a: a.remove(x) print(a) print("=" * 20) b = [1, 2, ...

  10. Linux中yum和apt-get用法及区别

    Linux中yum和apt-get用法及区别   一般来说著名的linux系统基本上分两大类:   1.RedHat系列:Redhat.Centos.Fedora等   2.Debian系列:Debi ...

随机推荐

  1. log4j的配置

    转载:http://it.oyksoft.com/log4j/ 收藏:http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html 一. ...

  2. save&lowbar;data

    <?php /** * * $model 实例化表模型 * * $url 跳转地址 */ public function save_data($model,$url){ if(false === ...

  3. QIBO CMS SQL Injection Via Variable Uninitialization In &bsol;member&bsol;special&period;php

    Catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 该漏洞存在于/member/special.php文件下,由于未对变量进 ...

  4. Eclipse&comma;IDEA自动生成相应对象接收方法返回值的快捷键

    @Service public class ItemServiceImpl implements ItemService { @Autowired private TbItemMapper itemM ...

  5. Python练习:九九乘法表

    打印 n * n 的乘法表 #打印 9*9 乘法表 def Multiplication(n): # n - 定义打印的行数 max_len = len(str((n)**2)) #计算最大值的占位( ...

  6. 洛谷P3193 &lbrack;HNOI2008&rsqb;GT考试&lpar;dp 矩阵乘法&rpar;

    题意 题目链接 Sol 设\(f[i][j]\)表示枚举到位置串的第i位,当前与未知串的第j位匹配,那么我们只要保证在转移的时候永远不会匹配即可 预处理出已知串的每个位置加上某个字符后能转移到的位置, ...

  7. &lt&semi;转&gt&semi;七种测试驱动模式

    本文转载自微信公众号:中国软件测试联盟 在进行软件测试时,我们都需要一个出发点,从哪里开始分析?测试设计是基于什么?简单说,就是什么驱动测试工作的进行? 基于对软件工程.产品质量和测试的理解,归纳出以 ...

  8. Python一个文件调用另外一个文件的方法

    from common.Log import MyLog as Log 写法不完善修改为 import common.Log.MyLog as Log 即可

  9. 逆袭之旅DAY20&period;XIA&period;选择结构

    2018-07-16  18:50:49 本章目标: 基本if选择结构 逻辑运算符 多重if选择结构 嵌套if选择结构 什么是if选择结构: if选择结构是根据条件判断之后再做处理 import ja ...

  10. C&plus;&plus;使用初始化列表提高效率(转):

    转自:http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html 何谓初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数 ...