Мне действительно нужно быть где-то еще этим утром. Итак, я решил вместо этого задать вопрос о производительности.Можете ли вы улучшить производительность этого метода linq-to-xml?
Приведенный ниже код работает, но он вызывает метод Load and Save несколько раз. Это кажется далеким от эффективности. Пожалуйста, кто-нибудь может предоставить код до тех пор, пока строки загрузки и сохранения не будут выходить за пределы цикла. Я хочу вызвать загрузку и сохранить только один раз.
Благодарности братва :)
public void RemoveNodes(IList<String> removeItems)
{
foreach (String removeItem in removeItems)
{
XDocument document = XDocument.Load(fullFilePath);
var results = from item in document.Descendants(elementName)
let attr = item.Attribute(attributeName)
where attr != null && attr.Value == removeItem.ToString()
select item;
results.ToList().ForEach(item => item.Remove());
document.Save(fullFilePath);
}
}
Я стараюсь не делать себе оправдание. Наверное, я не видел дерева для деревьев. Я бы выпил свое предписанное лекарство, когда передумал проблему. Стоит публиковать не только из-за повышения производительности, но и для упрощения, которого я, вероятно, не заметил бы - спасибо Jon – CarneyCode