删除ArrayList中所有出现的项目

Shu*_*ubh 4 c# arraylist

我试图删除arraylist中所有出现的项目

ArrayList list=new ArrayList();
list.Add("2.2");
list.Add("2.5");
list.Add("2.6");
list.Add("2.2");
list.Add("2.5");
list.Add("2.2");
Run Code Online (Sandbox Code Playgroud)

如何从列表中删除所有2.2值?我已经使用过了

list.Remove("2.2")
Run Code Online (Sandbox Code Playgroud)

但它只删除第一次出现

DGi*_*bbs 9

阅读ArrayList.Remove()上的文档,特别是:

从ArrayList中删除特定对象的第一个匹配项.

你为什么ArrayList还在用?您的示例中的元素都是相同的类型,您最好使用a List<string>然后使用RemoveAll,例如

List<string> list = new List<string>();
list.add("2.2");
list.add("2.5");
list.add("2.6");
list.add("2.2");
list.add("2.5");
list.add("2.2");

list.RemoveAll(item => item == "2.2");
Run Code Online (Sandbox Code Playgroud)

  • @ValentinP.OP是否有理由相信这是一个不完整的代码示例?按照你的逻辑,我们应该如何回答任何问题?毕竟,它可能不是他正在使用的实际代码!有缺陷的推理我的朋友:)和你是受欢迎的,坚持下去,你可能会学到一些东西.. (3认同)
  • @ValentinP.当有更好的解决方案时,为什么*不会*你提供它?当元素都是相同类型时使用`ArrayList`是完全没必要的. (2认同)
  • “在这种情况下,使用 ArrayList 是有意义的。” - 但显然没有意义,因为所有数组元素都是同一类型。`ArrayList` 已被弃用,并且属于 C# 没有泛型的时代。使用“List&lt;T&gt;”,您可以避免转换问题,您可以获得 LINQ 的好处,您可以避免对值类型进行装箱/拆箱,更不用说“ArrayList”在 64 上消耗的内存是“List&lt;T&gt;”的 2 倍。位机器](http://blogs.msdn.com/b/joshwil/archive/2004/04/13/112598.aspx),请解释一下为什么OP *应该*使用`ArrayList`? (2认同)