从 List<int> 中删除所有“0”值

use*_*072 1 c# linq integer list

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

谢谢。

Han*_*ney 5

以下是一些选项:

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

var newList = originalList.Where(i => i != 0).ToList();
Run Code Online (Sandbox Code Playgroud)

修改原列表:

originalList.RemoveAll(i => i == 0);
Run Code Online (Sandbox Code Playgroud)

老派的、痛苦的方式(对于搞笑者来说):

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

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

while (originalList.Remove(0)) { }
Run Code Online (Sandbox Code Playgroud)