在C#的List集合操作中,移除集合中的元素可以使用Remove方法,不过Remove方法的参数为具体的List集合中的元素,其实还可以使用List集合的RemoveAt方法来移除List集合中的元素,RemoveAt方法的方法签名为void RemoveAt(int index),index代表需要移除的元素在List集合中的索引位置,List集合的索引位置从0开始计算。
例如有个List的集合list1,含有1至10的数字,如果要移除2,则对应索引为1,具体实现语句如下:
List list1 = new List() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
list1.RemoveAt(1);
最终得到的结果为:list集合中的元素2被移除出去了。
备注:原文转载自博主个人站
IT技术小趣屋
,原文链接
C#中List集合使用RemoveAt方法移除指定索引位置的元素_IT技术小趣屋
。
在foreach
中
删除
元素
时,每一次删除都会导致
集合
的大小和
元素
索引
值发生变化,从而导致在foreach
中
删除
元素
时会抛出异常。
集合
已修改;可能无法执行枚举操作。
方法
一:采用for循环,并且从尾到头遍历
如果从头到尾正序遍历删除的话,有些符合删除条件的
元素
会成为漏网之鱼;
正序删除举例:
List
temp
List
= new
List
() { "a","b","b","c" };
for (int i = 0; i < temp
List
.Count; i++)
if (temp
List
[i] == "b")
在用
Remove
At遍历
list
泛型
集合
移除
数据的时候,不要用foreach遍历,要用for遍历:
for (int i = 0; i < ltype.Count; i++)
if (ltype[i].id == 2)
ltype.
Remove
At(
表示键/值对的
集合
,这些键和值按键排序并可按照键和
索引
访问。
Sorted
List
最合适对一列健/值对 进行排序,在排序时,是对键进行排序,Sorted
List
是 Hashtable 和 Array 的混合。当
使用
Item
索引
器属性按照
元素
的键访问
元素
时,其行为类似于 Hashtable。当
使用
GetByIndex 或 SetByIndex 按照
元素
的
索引
访问
元素
时,其行为类似于 Array。
Sorted
List
在内部维护两个数组以将数组存储到列表
中
;即,一个数组用于键,另一个数组用于相关联的值。每个
元素
都是一个可作为 DictionaryEntry 对象进行访问的键/值对。键不能
C#
在
List
中
删除主要有
Remove
()、
Remove
At()、
Remove
Range()、
Remove
All()这几个
方法
。一、
Remove
()删除
List
中
匹配到的第一个项,参数为
List
中
的T,返回类型为bool,成功删除返回True,失败或者没有找到返回False。例如:
var rt = str
List
.
Remove
("aa");
二、
Remove
At()删除
指定
索引
的一项。参数为int ,表示
索引
。返回类型为void。例如:
str
List
.
Remove
At(0);
在
C#
的
List
集合
操作
中
,
移除
集合
中
的
元素
可以
使用
Remove
方法
,不过
Remove
方法
的参数为具体的
List
集合
中
的
元素
,其实还可以
使用
List
集合
的
Remove
At
方法
来
移除
List
集合
中
的
元素
,
Remove
At
方法
的
方法
签名为void
Remove
At(int index),index代表需要
移除
的
元素
在
List
集合
中
的
索引
位置
,
List
集合
的
索引
位置
从0开始计算。
例如有个
List
的
集合
list
1,含有1至10的数字,如果要
移除
2,则对应
索引
为1,具体实现语句如下:
List
list
1...
Q
List
删除
元素
的时候需要特别注意一点,将
元素
删除后链表
中
元素
的排列。删除一个
元素
后,后面的
元素
会补到被删
元素
的
位置
,这样在for循环
中
若删除
元素
后继续执行下标++,则会少遍历
元素
。下面看一个示例。
下面是出错的代码,删除
元素
后执行了下标++。
//参数大概说明,仅说明,不涉及定义
Q
List
Reso m_
list
Resolution;//保存每块屏的分辨率
stuBigScreen m_stuBigScrInfo;//保存大屏列表的信息
//每块屏的分辨率
typedef struct
遇到一次Array
List
移除
指定
下标的
元素
不生效的问题,先上代码:
//之前有一需求需要
移除
test
List
面
指定
下标的
元素
,
指定
下标存在index
List
里面
List
<String> index
List
= Arrays.as
List
("3", "2", "1");
List
<Integer> test
List
= new Array
List
<>();
test
List
.add(4);
test
List
.add(2);
test
List
.add(3);