刪除一個項目,我想從一個ObservationCollection<City>.
從分層集合
刪除city
我曾嘗試:
private static void DeleteCity(List<City> cities, City cityToDelete)
{
City nodeToDelete = null;
foreach (var city in cities)
{
if (city.permanentId == cityToDelete.permanentId)
{
nodeToDelete = city;
break;
}
DeleteCity(city.Children.ToList(), cityToDelete);
}
if (nodeToDelete != null)
{
cities.Remove(nodeToDelete);
return;
}
}
public static void SomeFunction(...................)
{
......
......
......
DeleteCity(ServiceLocator.Instance.Cities.ToList(), cityToMove);
....
....
}
當我保持一個斷點return;
DeleteCity
方法。我可以看到cityToDelete的傳入值從城市中刪除。但是當我進一步調用函數時,我可以看到ServiceLocator.Instance.Cities仍然保持着這個特定的城市。爲什麼它不會從該集合中刪除該城市?
你似乎正在通過你想要移動的城市.. – 2014-09-28 22:54:01
你的DeleteCity(...,...)方法做什麼? – 2014-09-28 22:54:35
@kirsteng我相信我正在通過正確的城市。 – Vishal 2014-09-28 22:55:51