【发布时间】:2022-01-25 17:11:01
【问题描述】:
当我尝试删除所有元素时,RemoveAll 方法不起作用。删除后,我尝试使用 foreach 循环 Console.WriteLine() 从 mainArray 中的所有元素。为什么这种从列表中删除特定元素的方法不起作用,也许还有更好的方法?
var mainArray = new int[] { 1, 2, 1 , 2, 3 };
mainArray.ToList().RemoveAll(n => n == 1);
【问题讨论】:
-
提示,看
ToList()的返回类型。注意它不是void。 -
阅读您的代码。您从
mainArray开始,然后通过调用ToList将其复制到一个新列表中。然后您调用RemoveAll并删除该列表中编号为1 的元素,清空列表。您不会将该部分清空的列表分配给任何变量。在该语句的末尾,您有一个即将超出范围的缩减列表和未触及的原始数组
标签: c# arrays .net list removeall