【问题标题】:Remove all "0" values from List<int>从 List<int> 中删除所有“0”值
【发布时间】:2014-06-28 09:54:30
【问题描述】:

我只是在寻找一种方法来删除 List(int) 中 == 0 的所有值。

谢谢。

【问题讨论】:

  • 看看List&lt;T&gt;.RemoveAll 或许?

标签: c# linq list integer


【解决方案1】:

这里有几个选项:

根据原始列表创建一个新列表并过滤掉0值:

var newList = originalList.Where(i => i != 0).ToList();

修改原列表:

originalList.RemoveAll(i => i == 0);

老式的、痛苦的方式(为了搞笑):

for (int i = 0; i < originalList.Length; i++)
{
    if (originalList[i] == 0)
    {
        originalList.RemoveAt(i);
        i--;
    }
}

真正低效,反复遍历列表的方式(不要这样做):

while (originalList.Remove(0)) { }

【讨论】:

  • 这会创建一个新列表,而不是从现有列表中删除值。它可能解决了 OP 的问题,但可能不会。 RemoveAll 当然会...
  • 谢谢@JonSkeet - 我已经更新了这两个选项。
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多