2014-05-10 28 views

回答

1

這裏有幾個選項:

創建一個新的列表基於原來的名單上,篩選出0值:

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

修改原來的列表:

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

的老派,痛苦的方式(對於funsies):

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

真正低效,反覆遍歷列表的方式(不這樣做):

while (originalList.Remove(0)) { } 
+0

這會創建一個新列表,而不是從現有的列表中刪除值。它*可能*解決OP的問題,但它可能不會。 'RemoveAll'肯定會通過... –

+0

謝謝@JonSkeet - 我已經更新了兩個選項。 – Haney