我有这个从 XML 文件加载的结果集
calendarDocument = XDocument.Load(@"C:\CalendarDB.xml");
IEnumerable<XElement> elements = from e in calendarDocument.Root.Elements("Session") select e;
不要说我需要从日历文件中删除一个元素。这行得通吗?
elements.ToList().Remove(someElement);
calendarDocument.Save(@"C:\CalendarDB.xml");
那这个呢?
elements.ToList().Remove(someElement);
elements.Last().AddAfterSelf(anotherElement);
elements.Last().AddAfterSelf(yetAnotherElement);
element.ToList().Remove(anotherElement);
calendarDocument.Save(@"C:\CalendarDB.xml");
我有一种感觉,每次我调用 Last() 时,它都会直接从日历文件中返回一个新的结果集,但是当我调用 Remove() 时,它不会从文件中删除元素,直到我调用 Save() 并且如果我不调用Save() 在每个 Remove() 之后立即调用 Last() 将返回与以前相同的结果集,仍然包含已删除的元素。
有人可以告诉我这是如何工作的吗?我是否需要每次在 Remove() 之后调用 Save() 才能从 Last() 获取最新信息?