我需要从我的 XML 文件中删除节点中的所有项目,Finished != ""
但我的代码仅删除此条件为真的第一项
我的代码:
try
{
var file = IsolatedStorageFile.GetUserStoreForApplication();
XElement xElem;
using (IsolatedStorageFileStream read = file.OpenFile("tasks.xml", FileMode.Open))
{
xElem = XElement.Load(read);
}
var tasks = from task in xElem.Elements("Task")
where (string)task.Element("Finished") != ""
select task;
using (IsolatedStorageFileStream write = file.CreateFile("tasks.xml"))
{
foreach (XElement task in tasks)
{
task.Remove();
}
xElem.Save(write);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
NavigationService.GoBack();
}
但是如果我用它替换task.Remove();
它MessageBox
会多次显示消息框,因为它是正确的。
我的代码有什么问题?