我知道從列表中刪除,而不是一個好主意,但如何獲得它的淺拷貝和迭代,而從原始列表中刪除?從列表中刪除,同時迭代它的一個淺表副本
例子:
public class myClass
{
public int id { get; set; }
public string name { get; set; }
}
List<myClass> list = new List<myClass>();
// getting a shallow copy with FindAll
List<myClass> copy = list.FindAll(e => e.id > 10);
for (int i = 0; i < copy.Count; i++)
{
// do stuff with copy[i]
list.RemoveAll(e => e.id == copy[i].id);
}
如果copy
是隻是一個列表的元素的指針列表中,什麼將指針從複製點後,我從原來的列表中刪除?
您要爲每個要刪除的項目調用'RemoveAll'一次。這沒有任何意義。只需調用'RemoveAll'一次即可刪除所有項目。 'list.RemoveAll(item => item.id> 10);'你就完成了。 – Servy 2015-01-09 21:35:48
@Servy我不能,首先我需要做的東西與我刪除的項目。 RemoveAll實際上在if條件下。 – osmiumbin 2015-01-09 22:00:24