LINQ to XML. Оптимизация метода для сохранения документа - C#
Формулировка задачи:
В общем имеем такой метод:
думаю, что где что и так понятно, но на всякий случай структура документа
ну и описание элемента самого списка postList
Чаго хачу? Хачу избавиться от поиска последнего элемента Post, для добавления списка элементов Attachment, ну или на худой конец получать доступ к последнему элементу не выгребая весь список имеющихся постов.
PS Код на работоспособность пока не проверялся, так что в нем могут быть ошибки.
public void SaveColection(List<Post> postList, string path) { var doc = new XDocument(); doc.Add(new XElement("PostCollection")); foreach (var item in postList) { doc.Root.Add(new XElement("Post",new XAttribute("Id", item.PostId) , new XElement("Text", item.PostText) , new XElement("Attachments") , new XElement("CountPublished", item.CountPublished))); var itemPost=doc.Descendants("Post").First(x => x.Attribute("Id").Value == item.PostId.ToString()).Element("Attachments");// больше всего напрягает вот эта строка foreach (var el in item.AttachList) { itemPost.Add(new XElement("Attachment" , new XAttribute("AttachId", el.AttachId) , new XElement("AttachAddress", el.AttachPlace) , new XElement("AttachType", el.AttachType))); } } doc.Save(path); }
<PostCollection> <Post Id="someUInt"> <Text>SomeText</Text> <Attachments> <Attachment AttachId="someUInt"> <AttachAddress> some path(string) </AttachAddress> <AttachType> typeDoc </AttachType> </Attachment> </Attachments> <CountPublished> counter (some uint) </CountPublished> </Post> ... </PostCollection>
uint PostId; string PostText; List<Attachment (свой класс)>AttachList;
Решение задачи: «LINQ to XML. Оптимизация метода для сохранения документа»
textual
Листинг программы
var itemPost=item.Element("Attachments");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д