删除一个项目,我想从一个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