c#List移除列表中的元素
对于一个List<T>对象来说移除其中的元素是常用的功能。自己总结了一下,列出自己所知的几种方法。
class Program
{
static void Main(string[] args)
{
try
{
List<Student> studentList = new List<Student>();
for (int i = ; i < ; i++)
{
Student s = new Student()
{
Age = ,
Name = "John"
};
studentList.Add(s);
}
studentList.Add(new Student("rose",));
studentList.Add(new Student("rose", ));
studentList.Add(new Student("rose", )); //不能用foreach进行删除列表元素的操作,因为这种删除方式破坏了索引
//foreach (var testInt in studentList)
//{
// if (testInt.Age == 10)
// studentList.Remove(testInt);
//}
Console.Read();
}
catch (Exception)
{ throw;
} }
}
方法1:for循环倒序移除
//for循环倒序删除
23 for (int i = studentList.Count - 1; i >= 0; i--)
24 {
25 if (studentList[i].Age == 10)
26 {
27 studentList.Remove(studentList[i]);
28 //studentList.RemoveAt(i);
29 }
30 }
方法2:for循环顺序移除//for循环顺序删除
for (int i = ; i < studentList.Count - ; )
{
if (studentList[i].Age==)
{
studentList.Remove(studentList[i]);
}
else
{
i++;
}
}
方法3:使用RemoveAll筛选移除
studentList.RemoveAll((test) => test.Age == 10);//可以用此Linq表达式移除所有符合条件的列表元素
方法4:克隆所有非移除元素至一个新的列表中
c#List移除列表中的元素的更多相关文章
- 使用size()方法输出列表中的元素数量。需要注意的是,这个方法返回的值可能不是真实的,尤其当有线程在添加数据或者移除数据时,这个方法需要遍历整个列表来计算元素数量,而遍历过的数据可能已经改变。仅当没有任何线程修改列表时,才能保证返回的结果是准确的。
使用size()方法输出列表中的元素数量.需要注意的是,这个方法返回的值可能不是真实的,尤其当有线程在添加数据或者移除数据时,这个方法需要遍历整个列表来计算元素数量,而遍历过的数据可能已经改变.仅当没 ...
- pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值.
- 《Python CookBook2》 第四章 Python技巧 - 若列表中某元素存在则返回之 && 在无须共享引用的条件下创建列表的列表
若列表中某元素存在则返回之 任务: 你有一个列表L,还有一个索引号i,若i是有效索引时,返回L[i],若不是,则返回默认值v 解决方案: 列表支持双向索引,所以i可以为负数 >>> ...
- 巧妙利用ToArray()函数移除集合中的元素
当我们对集合foreach遍历时,不能直接移除遍历的集合的元素,解决的方法有很多种,见我之前的随笔: http://www.cnblogs.com/527289276qq/p/4331000.html ...
- 【381】python 获取列表中重复元素的索引值
参考:获取python的list中含有重复值的index方法_python_脚本之家 核心思想:建立字典,遍历列表,把列表中每个元素和其索引添加到字典里面 cc = [1, 2, 3, 2, 4] f ...
- .join() ----- 是把列表中的元素用 "xx".join() 拼接成字符串
li = ["alex", "eric", "rain"] str1 = "_".join(li) # 是把列表中的元素 ...
- LeetCode 27 Remove Element (移除数组中指定元素)
题目链接: https://leetcode.com/problems/remove-element/?tab=Description Problem : 移除数组中给定target的元素,返回剩 ...
- s = sorted(lst,key= func) # 将列表中的元素一个一个传给func,根据func的返回值进行排序
排序函数sorted :语法: sorted(iterable,key=func , reverse )key:排序规则(排序函数),在sorted内部将"可迭代对象"中的每一个元 ...
- Python求列表中某个元素的下标
一.求列表中某个元素的下标 def findindex(org, x, pos=-1): counts = org.count(x) #先求出org中包含x的个数 if counts == 0: #个 ...
随机推荐
- shiro session计算timeout
/** * Determines if this session is expired. * * @return true if the specified session has expired, ...
- 在linux下使用curl访问 多参数url GET参数问题
一.在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本.每一小时执行myscript.php如下: # ...
- lanmp之二 (奇葩问题)
ps:该篇是接 lanmp -- 动静分离 lanmp -- 奇葩问题 话说,在 搭建 bbs.abc.com (discuz论坛)的 时候.... 1.说明:web机器上以前已经有一个 discuz ...
- log4j使用总结
1.不同包的日志,记录到不同文件 log4j.logger.com.gyoung.service.impl=INFO,Doc log4j.appender.Doc=com.gyoung.logger. ...
- git tag使用标记
git跟其它版本控制系统一样,可以打标签(tag), 作用是标记一个点为一个版本号,如0.1.3, v0.1.7, ver_0.1.3.在程序开发到一个阶段后,我们需要打个标签,发布一个版本,标记的作 ...
- 导出(Excel格式)
poi导出,需要的poi jar包: 步骤一.两个工具类: 1.ExcelUtil.java package util; import java.awt.Color; import java.io.F ...
- 使用Fiddler关于“由于目标计算机积极拒绝,无法连接。”的解决方案
今天使用Fiddler的时候遇到下面这个问题:在地址栏想打开个一般处理程序,出现连接本机失败的提示,如下图: 而这在我没打开Fiddler的时候是显示正常的. 查看Fiddler,在嗅探 -> ...
- JS监听输入框值变化兼容 onpropertychange、oninput
onpropertychange 属IE oninput 属除IE外(Chrome.Firefox.SS) 所以肯简单的办法嘛: 1. 一个input里面写两个属性事件 2.写在JS中判断浏览器添加监 ...
- 11.Object方法
综述 Object是Java中所有类的父类,对它的学习十分的重要, Object的函数除了final方法,基本上都是被设计为要被覆盖的(Override),这节我们就一起来学习这些函数. 1.equa ...
- 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载
一.分布式消息总线以及基于Socket的实现 在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于.N ...