Я хочу выбрать элемент с самой последней отметкой времени (сохраненной как атрибут) и удалить любую другую, которая может существовать (потому что это будет означать, что пользователь перепутал с xml-файлом).Удаление устаревших элементов из XML-документа с использованием XML.Linq
(каталог, имя и имя файла, поля и/или параметры метода, содержащие это тело)
using (FileStream fileStream = new FileStream(Path.Combine(directory, fileName), FileMode.OpenOrCreate))
{
XElement xmlRoot = XElement.Load(fileStream);
var query = from e in xmlRoot.Elements("key")
where e.Attribute("name")?.Value == name
orderby Int32.Parse(e.Attribute("timestamp")?.Value) descending select e;
if(query.Count() == 1)
{
return query.First();
}
else if (query.Count() > 1)
{
//here I need to delete any other than First (which has
//the latest timestamp, and return first, just like above)
}
else
{
}
}
В частности, я хочу знать, как удалить все устаревшие элементы (те, с меньшим временной метки) внутри статья if (query.Count() > 1)
. LINQ всегда был для меня немного мистическим. Извините, если вопрос тривиален.
PS .: Я призываю всех, кто знает конкретное вычислительное имя этой проблемы, редактировать и переименовывать мой вопрос, а также переписывать его по мере необходимости. Я любитель.
Спасибо! Я никогда не думал, что это сработает. – FinnTheHuman
@FinnTheHuman, добро пожаловать;) – octavioccl